带有bootstrap输入的Angular ng-repeat复选框和使用ng-true-value的动态ng-model

时间:2015-05-15 01:07:36

标签: javascript angularjs twitter-bootstrap checkbox

这个问题对我来说有点棘手,所以我会尽我所能。我正在尝试使用动态ng模型正确地实现Angular复选框及其ng-true-value。

<div ng-app="myApp">
<div ng-controller="MyCtrl">
    <div ng-repeat="asset in asset">
         <h5>{{ asset.title }} categories are...{{ asset.category[0] + " and " + asset.category[1] }}</h5>

        <div class="form-group">
            <label>Business</label>
            <div class="checkbox" ng-repeat="category in categoryFactory.business">
                <input type="checkbox" id="{{category}}" ng-true-value="{{'category'}}" ng-model="asset.category[$index]">
                <label for="{{category}}">{{category}}</label>
            </div>
        </div>
        <div class="form-group">
            <label>Personal</label>
            <div class="checkbox" ng-repeat="category in categoryFactory.personal">
                <input type="checkbox" id="{{category}}" ng-true-value="{{'category'}}" ng-model="asset.category[$index]">
                <label for="{{category}}">{{category}}</label>
            </div>
        </div>
    </div>
</div>

我的最终目标是当我加载资源时(在下面找到...),它会显示在My end goal的图片中,并选中正确的复选框。业务和个人类别来自工厂,每个表单组复选框都来自工厂中的业务/个人的ng-repeat列表。

$scope.asset = [{
  title: "Sales Agreement",
  category: ["finance-admin", "running-a-business"]
}];

我的问题是必须在复选框内正确实现ng-model。由于每个资产可以包含1个或更多类别,因此它需要是动态的。我尝试使用$ index使我的ng-model动态...

ng-model="asset.category[$index]"

但这似乎不像我希望的那样有效。我可能错过了一些非常容易的东西,一些帮助将不胜感激。

谢谢! 顺便说一下这里是  JSFIDDLE

2 个答案:

答案 0 :(得分:1)

目前根据你的$ index逻辑,两个数组categoryFactory.businessasset.category必须大小相同,所以这里是更新的jsfiddle

但主要部分是这个

首先,对于你的情况,ng-true-value应该是一个表达式

ng-true-value="{{category}}"

其次,您的asset.category数组索引应与categoryFactory.business数组

中的选项匹配
$scope.asset = [{
    title: "Sales Agreement",
    category: ["", "running-a-business","",  "","finance-admin"]
}];

可以有一个更好的选择来管理它而不依赖于$ index但这应该适合您的情况

答案 1 :(得分:0)

我使用了ng-checked,你可以将函数作为属性值,ng-repeat将评估每个循环中的函数。

Failed to execute goal on project solr: Could not resolve dependencies 
for project org.dspace.modules:solr:war:5.1: Could not transfer 
artifacr orgapache.solr:war:4.10.2 from/to 
central<https://repo.maven.apache.org/maven2>: GET request of: 
org/apache/solr/solr/4.10.2/solr-4.10.2.war from central failed:SSL 
peer shut down incorrectly-> [Help 1]

在isCategory()中,我们检查asset.category数组中类别的索引,如果它发现它将为真。

https://jsfiddle.net/pg5dqgr9/8/