簡體   English   中英

根據條件使用ng-repeat動態顯示輸入復選框

[英]Dynamically display input checkbox using ng-repeat based on condition

我正在嘗試根據條件標志顯示帶有標簽的復選框。 標簽值如下:

$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作為復選框標簽。

我該怎么做呢? 以及如何使復選框默認為選中狀態?

嘗試使用函數返回要顯示的值,而不是直接返回列表。 像這樣

<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>

對於陣列選擇,Scott的答案是正確的。 要使您的復選框默認為選中狀態,如果復選框已使用表達式選中,請使用ng-checked

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

或選中的屬性(如果希望始終默認選中)

<input type="checkbox" checked>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM