2016-07-27 121 views
1

我希望能夠在首次加載頁面時顯示城市的完整列表。Ng顯示和過濾器

當用戶點擊該城市我想用NG-顯示/ NG隱藏以顯示用戶所選城市的結果,並隱藏非選定城市的複選框。

我不想使用過濾器,因爲這從加DOM /刪除使其重新渲染。

有誰知道最好的方法來做到這一點。

+0

'NG秀= 「城市== selectedcity」'在所有複選框 – eltonkamami

+0

你嘗試過什麼? –

回答

0

我猜你使用ng-repeat來顯示所有的城市?如果是的話,你可以做這樣的事情:

<ul class="cities"> 
    <li ng-repeat="city in cities" ng-show="!selectedCity">{{city}}</li> 
    <li ng-show="selectedCity">{{selectedCity}}</li> 
</ul> 

一旦用戶選擇一個城市,你的變量selectedCity將填充,它會隱藏列表和顯示liselectedCity只顯示。

你必須設置在控制器變量selectedCity當用戶點擊複選框。

你沒有張貼任何代碼,所以我不知道究竟是您的實現,以顯示城市。我希望這個例子很清楚。

看到這個fiddle,看看這是你正在尋找的功能。

+0

這是一個小提琴 - http://jsfiddle.net/Lvc0u55v/7495/。在選擇倫敦時,我想隱藏洛杉磯,反之亦然。 – user2025749

0

例如如果u持有$ scope.cities城市和你重複的着陸頁使用複選框,這樣的城市在城市納克重複

<input type="checkbox" ng-model="$scope.cities[$index]['select']" ng-true-value="'YES'" ng-false-value="NO" ng-click="showCitiesData(city)"> 

然後在你的控制器

.controller{ 
$scope.showcitydata=false; 
$scope.showCities=function(city){ 
if(city.select=='YES;){ 
    $scope.showcitydata=true; 
    } 
} 
} 
0

設置過濾成ng-repeat指令與對象表達式

ng-repeat="city in cities | filter:{selected:true}" 
2

嘗試:

<label ng-init="city = {}"><input type="checkbox" ng-change="selected = true" ng-model="city['London']">London</label> 
<label><input type="checkbox" ng-change="selected = true" ng-model="city['Los Angeles']">Los Angeles</label> 

<div ng-controller="MyCtrl"> 
    <ul class="employees"> 
     <li ng-repeat="employee in employees" ng-show="!selected || city[employee.city]"> 
     {{employee.name}} 
     </li> 
    </ul> 
</div> 
+0

謝謝,因爲它應該工作 – user2025749