6

マテリアル デザイン チェックボックスのグループがあり、それらの値をコントローラーの配列にバインドしたいと考えています。

これを達成するために、この SO answerで説明されている最初の方法を使用しました。値がリストに適切に追加および削除されている間、ボックスをクリックしても「チェック済み」として表示されなくなります。私のコードは以下にあり、この codepenで問題を再現しました。

チェックボックスの HTML

<md-checkbox 
    ng-repeat="site in websites" 
    value="{{site}}" 
    ng-checked="selection.indexOf(site) > -1" 
    ng-click="toggleSelection(site)"> 
    {{site}}
</md-checkbox>

コントローラからの JavaScript

  $scope.websites = ['Facebook', 'Twitter', 'Amazon'];
  $scope.selection = ['Facebook'];
  $scope.toggleSelection = function toggleSelection(site) {
    var idx = $scope.selection.indexOf(site);

    // is currently selected
    if (idx > -1) {
      $scope.selection.splice(idx, 1);
    }

    // is newly selected
    else {
      $scope.selection.push(site);
    }
  };
});
4

1 に答える 1

4

これを変更してみてください:

ng-checked="selection.indexOf(site) > -1" 

これに:

ng-checked="{{selection.indexOf(site) > -1}}" 

私のために働いた:http://codepen.io/anon/pen/xbNOmE

于 2015-04-06T01:15:53.893 に答える