2016-04-05 10 views
0

条件付きフラグに基づいてラベル付きのチェックボックスを動的に表示しようとしています。 次のようにラベルの値は以下のとおりです。条件に基づいてng-repeatを使用して入力チェックボックスを動的に表示

$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を表示する必要があります。

どうすればいいですか?そして、どうすればデフォルトでチェックボックスをチェックすることができますか?

答えて

1

関数を使用して、リストではなく表示する値を直接返してみてください。この

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


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

EDITのように:あなたは、あなたのデータ構造に共通の値を持っており、それにバインドする必要があります 配列に特異的に結合します。たとえば、次のように

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

によって確認したい場合は、チェックボックスを表現

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

またはcheckedプロパティにチェックされている場合は使用NG-チェックし、あなたのチェックボックスはデフォルトでチェックさせるために さらに、チェックボックスの周囲にdiv(またはスパンまたはラベル)を追加し、このdivにngRepeatを設定してラベルを設定します。それ以外の場合は、ラベルではなくチェックボックスのみが繰り返されます。 – JanP

+0

どうすれば入力ごとにngモデルをtrue(チェック用)とfalse(未チェック用)として接続できますか? –

0

を持っているチェックボックスにScottの答えは、アレイ選択に関する正しいです。あなたはそれが常にデフォルト

<input type="checkbox" checked> 
関連する問題