2016-03-24 17 views
0

我想基於與ng-repeat和ng-show的選擇列表元素,我不明白爲什麼ng-show不能按預期工作。角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

BTW: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中使用過濾器,最好的方法是使用filter而不是ng-show或ng-if指令。 –

相關問題