1. ホーム
  2. angularjs

[解決済み] AngularJSのng-ifで複数条件を指定する。

2022-04-26 15:03:15

質問

このようなことが可能かどうか知りたいのですが。

div ng-repeat="(k,v) in items"
<div ng-if="k == 'a' || k == 'b'">
    <!-- SOME CONTENT -->
</div>

itemsはリクエストで受け取ったJSONコンテナなので、key, valueメソッドを使っているのはそのためだと知っています。

ありがとうございます。

ググってみたのですが、結果は ng-switch を使用する必要があります。 ng-if .

解決方法は?

もちろん可能です。こんな感じ。

HTML

<div ng-controller="fessCntrl">    
     <label ng-repeat="(key,val) in list">
       <input type="radio" name="localityTypeRadio" ng-model="$parent.localityTypeRadio" ng-value="key" />{{key}}
         <div ng-if="key == 'City' || key == 'County'">
             <pre>City or County !!! {{$parent.localityTypeRadio}}</pre>
         </div>
         <div ng-if="key == 'Town'">
             <pre>Town!!! {{$parent.localityTypeRadio}}</pre>
         </div>        
      </label>
</div>

JS

var fessmodule = angular.module('myModule', []);

fessmodule.controller('fessCntrl', function ($scope) {

    $scope.list = {
        City: [{name: "cityA"}, {name: "cityB"}],
        County: [{ name: "countyA"}, {name: "countyB"}],
        Town: [{ name: "townA"}, {name: "townB"}]
      };

    $scope.localityTypeRadio = 'City';
});

fessmodule.$inject = ['$scope'];

デモ フィドル