根据条件

时间:2016-04-05 17:54:08

标签: javascript jquery angularjs checkbox

我试图基于条件标志动态显示带有标签的复选框。 标签值如下:

$scope.listA = [
   {
     name : "Sample 1"
   },
   {
     name : "Sample 2"
   }
];
$scope.listB = [
   {
     name : "Result 1"
   },
   {
     name : "Result 2"
   },
   {
     name : "Result 3"
   }
];

这是我正在使用的HTML。

<input type="checkbox" ng-repeat="item in listA"/>{{item.name}}

我有一个变量,我需要显示$ scope.listA或$ scope.listB。

var mode = "A";

如果mode = A,那么我需要将listA显示为复选框标签。如果还有其他什么,那么我需要将listB显示为复选框标签。

我怎么能这样做?如何在默认情况下选中复选框?

2 个答案:

答案 0 :(得分:1)

尝试使用函数返回要显示的值而不是直接返回列表。喜欢这个

<input type="checkbox" ng-repeat="item in whichItems()"/>


$scope.whichItems = function() {
    var ret = listA;
    if($scope.mode != 'A') {
       ret = listB;
    }
    return ret;
};

编辑:绑定到数组 您必须在数据结构中具有共同的值并绑定到该数据结构。例如:

  var mydata = [{itemLabel:'item1',selected:false},  {itemLabel:'item2', selected:false}]

然后在您拥有的复选框中

   <div ng-repeat="item in whichItems()">
      <input type="checkbox" ng-model="item.selected">{{item.itemLabel}}
   </div>

答案 1 :(得分:0)

斯科特对阵列选择的回答是正确的。 要在默认情况下选中复选框,请使用ng-checked(如果使用表达式选中复选框

<input type="checkbox" ng-checked="expression">

或checked属性,如果您希望始终默认选中它

<input type="checkbox" checked>