web-dev-qa-db-ja.com

ng-repeatによって生成されたチェックボックスへのng-modelの割り当て

IDと国コードが添付された国のリストを含むjsonを設定しました。

次のようになります。

$scope.countries = [
  {"name":"Afghanistan","id":"AFG","country-code":"004"},
  {"name":"Åland Islands","id":"ALA","country-code":"248"},
  {"name":"Albania","id":"ALB","country-code":"008"},
  {"name":"Algeria","id":"DZA","country-code":"012"}
]

次に、ng-repeatディレクティブを使用して、すべての国のチェックボックス入力を作成します。

<div ng-repeat="country in countries">
      <label><input type="checkbox" ng-model="{{country.id}}" ng-true-value="'{{country.name}}'" ng-false-value="''">{{country.name}}</label>
</div>

ただし、コードを実行すると、次の情報しか表示されません。

ここに場所のチェックボックス{{country.name}}

繰り返しのng-modelの部分を削除すると、チェックボックスは正常に生成されますが、すべてのチェックボックスに固有のng-modelをアタッチする必要があります

ng-model="{{country.id}}"

一意のng-model値を添付するにはどうすればよいですか?

この回答( Generate ng-model inside ng-repeat )は一意のng-model値を提供しません

12
ocajian

提案しますse:

<div ng-repeat="country in countries">
    <label><input type="checkbox" ng-model="myCountry.selected[country.id]" ng-true-value="'{{country.name}}'" ng-false-value="''">{{country.name}}</label>

</div>

</div>
{{myCountry.selected}}

JS:

$scope.myCountry = {
    selected:{}
};
25
Ved