2016-03-24 6 views
0

ng-repeatとng-showの選択に基づいて要素をリストしようとしていますが、ng-showが期待どおりに動作しない理由を理解できません。angular ng-show式の文字列が期待どおりに動作しない

function Ctrl($scope) { 
$scope.categories = [ 

{"name": "alpha"}, 
{"name": "beta"}, 
{"name": "gama"} 

]; 
$scope.subcategories = [ 

{"parent": "alpha", 
    "text" : "alpha text"}, 
{"parent": "beta", 
    "text" : "beta text"}, 
{"parent": "gama", 
    "text" : "gama text"} 

]; 
} 

-

<div ng-controller="Ctrl"> 
<div> 
    Categorie: 
    <select id="country" ng-model="categorie"> 
     <option value=''>Select</option> 
     <option ng-repeat="cat in categories" value="{{cat.name}}">{{cat.name}}</option> 
    </select> 
    <p>Selected categorie: {{categorie}} </p> 
</div> 
<div> 
<p ng-repeat="x in subcategories" ng-show="x.parent == 'categorie'"> 
    {{x.text}} 
</p> 
</div> 

+0

ところで使用することができます。https://docs.angularjs.org/api/ng/directive/ngOptions – coma

答えて

1

これを試してみてください。

<p ng-repeat="x in subcategories" ng-show="x.parent == categorie"> 

ともあなたはこの

<p ng-repeat="x in subcategories | filter:{parent:categorie}" > 

var app = angular.module("app",['angular.filter']) 
 
app.controller('ctrl',['$scope', function($scope){ 
 
     $scope.categories = [ 
 

 
{"name": "alpha"}, 
 
{"name": "beta"}, 
 
{"name": "gama"} 
 

 
]; 
 
$scope.subcategories = [ 
 

 
{"parent": "alpha", 
 
    "text" : "alpha text"}, 
 
{"parent": "beta", 
 
    "text" : "beta text"}, 
 
{"parent": "gama", 
 
    "text" : "gama text"} 
 

 
]; 
 
}]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.22/angular.min.js"></script> 
 
<script src="//cdnjs.cloudflare.com/ajax/libs/angular-filter/0.4.7/angular-filter.js"></script> 
 
<div ng-app="app" ng-controller="ctrl"> 
 
<div> 
 
    Categorie: 
 
    <select id="country" ng-model="categorie"> 
 
     <option value=''>Select</option> 
 
     <option ng-repeat="cat in categories" value="{{cat.name}}">{{cat.name}}</option> 
 
    </select> 
 
    <p>Selected categorie: {{categorie}} </p> 
 
</div> 
 
<div> 
 
<p ng-repeat="x in subcategories | filter:{parent:categorie}" > 
 
    {{x.text}} 
 
</p> 
 
</div>

+0

おかげでそれを完全に動作します。なぜ誰かが引用符でこのように動作しない理由を説明することはできますか? – pecata

+0

ng-repeatまたはng-ifディレクティブの代わりにfilterを使用するのが最も良い方法です。 –

関連する問題