20

HTML選択オプションがあります

<select>
    <option ng-repeat="field in filter.fields" value="{{field.id}}">{{field.name}}</option>
</select>

私は ng-repeat から繰り返していますが、選択可能なフィールドに基づいてオプションを無効にしたいです

<select>
    <option ng-repeat="field in filter.fields" {field.selectable==true?enable:disable} value="{{field.id}}">{{field.name}}</option>
 </select>

angularでこれをどのように達成できますか?

4

3 に答える 3

27

次のような構造があるとします。

  $scope.filter = {
    fields: [
      {id: 1, name: "a", selectable: false},
      {id: 2, name: "asdf", selectable: true},
      {id: 3, name: "qwet", selectable: false},
      {id: 4, name: "qnjew", selectable: true},
      {id: 5, name: "asdjf", selectable: false}
    ]
  };

これはあなたのために働くはずです:

  <select>
    <option ng-repeat="field in filter.fields" ng-disabled="field.selectable" value="{{field.id}}">{{field.name}}</option>
  </select>
于 2013-09-10T15:26:12.080 に答える
4

これは実際にはかなり古い質問です。Angular の新しいバージョン (angular 1.4+) では、ngOptions ディレクティブがあります。ここにリンクがあります: -

https://docs.angularjs.org/api/ng/directive/ngOptions

このケースを処理するための構文があります:-

label disable when disable for value in array track by trackexpr

他の誰かがこのページにアクセスした場合に備えて、これを入れようと思いました.

于 2016-06-08T05:10:01.597 に答える