angular.module("myapp", [])
.controller("myctrl", function myctrl($scope) {
$scope.cityIncludes = [];
$scope.includeCity = function(city) {
console.log(city);
var i = $scope.cityIncludes.indexOf(city);
if (i > -1) {
$scope.cityIncludes.splice(i, 1);
} else {
$scope.cityIncludes.push(city);
}
console.log($scope.cityIncludes);
}
$scope.cityFilter = function(city) {
if ($scope.cityIncludes.length > 0) {
if ($scope.cityIncludes.indexOf(city.city) < 0)
return;
}
return city;
}
$scope.rests = [{
"_id": "57da6aeb4eafac04afd01bc5",
"name": "Lahore Restaurant",
"city": "lahore",
"area": "johar town",
"min_order": "200 AED",
"del_time": "1 hour",
"del_fees": "1 AED",
"pre_order": "NA",
"rating_star": "4",
"rating_no": 514,
"status": "OPEN",
"__v": 0,
"categories": [{
"_id": "57da72e94eafac04afd01bc9",
"restaurant_id": "57da6aeb4eafac04afd01bc5",
"name": "subways Burger",
"category_id": "1",
"__v": 0,
"items": [{
"_id": "57da7973d0b5e2059c5ff10a",
"restaurant_id": "57da6aeb4eafac04afd01bc5",
"category_id": "57da72e94eafac04afd01bc9",
"logo": "abcLogo",
"name": "subway item 1",
"detail": "great item",
"price": "10",
"rating": "5",
"__v": 0
}, {
"_id": "57da79e8d0b5e2059c5ff10b",
"restaurant_id": "57da6aeb4eafac04afd01bc5",
"category_id": "57da72e94eafac04afd01bc9",
"logo": "abcLogo",
"name": "subway item 2",
"detail": "great item",
"price": "10",
"rating": "5",
"__v": 0
}, {
"_id": "57da79efd0b5e2059c5ff10c",
"restaurant_id": "57da6aeb4eafac04afd01bc5",
"category_id": "57da72e94eafac04afd01bc9",
"logo": "abcLogo",
"name": "subway item 3",
"detail": "great item",
"price": "10",
"rating": "5",
"__v": 0
}, {
"_id": "57da79fcd0b5e2059c5ff10d",
"restaurant_id": "57da6aeb4eafac04afd01bc5",
"category_id": "57da72e94eafac04afd01bc9",
"logo": "abcLogo",
"name": "subway item 4",
"detail": "great item",
"price": "10",
"rating": "5",
"__v": 0
}]
}]
}, {
"_id": "57da6aeb4eafac04afd01bc5",
"name": "islamabad rest",
"city": "islamabad",
"area": "johar town",
"min_order": "200 AED",
"del_time": "1 hour",
"del_fees": "1 AED",
"pre_order": "NA",
"rating_star": "4",
"rating_no": 514,
"status": "OPEN",
"__v": 0,
"categories": [{
"_id": "57da72e94eafac04afd01bc9",
"restaurant_id": "57da6aeb4eafac04afd01bc5",
"name": "subways Burger",
"category_id": "1",
"__v": 0,
"items": [{
"_id": "57da7973d0b5e2059c5ff10a",
"restaurant_id": "57da6aeb4eafac04afd01bc5",
"category_id": "57da72e94eafac04afd01bc9",
"logo": "abcLogo",
"name": "subway item 1",
"detail": "great item",
"price": "10",
"rating": "5",
"__v": 0
}, {
"_id": "57da79e8d0b5e2059c5ff10b",
"restaurant_id": "57da6aeb4eafac04afd01bc5",
"category_id": "57da72e94eafac04afd01bc9",
"logo": "abcLogo",
"name": "subway item 2",
"detail": "great item",
"price": "10",
"rating": "5",
"__v": 0
}, {
"_id": "57da79efd0b5e2059c5ff10c",
"restaurant_id": "57da6aeb4eafac04afd01bc5",
"category_id": "57da72e94eafac04afd01bc9",
"logo": "abcLogo",
"name": "subway item 3",
"detail": "great item",
"price": "10",
"rating": "5",
"__v": 0
}, {
"_id": "57da79fcd0b5e2059c5ff10d",
"restaurant_id": "57da6aeb4eafac04afd01bc5",
"category_id": "57da72e94eafac04afd01bc9",
"logo": "abcLogo",
"name": "subway item 4",
"detail": "great item",
"price": "10",
"rating": "5",
"__v": 0
}]
}]
}, {
"_id": "57da6aeb4eafac04afd01bc5",
"name": "abcd",
"city": "rawalpindi",
"area": "johar town",
"min_order": "200 AED",
"del_time": "1 hour",
"del_fees": "1 AED",
"pre_order": "NA",
"rating_star": "4",
"rating_no": 514,
"status": "OPEN",
"__v": 0,
"categories": [{
"_id": "57da72e94eafac04afd01bc9",
"restaurant_id": "57da6aeb4eafac04afd01bc5",
"name": "subways Burger",
"category_id": "1",
"__v": 0,
"items": [{
"_id": "57da7973d0b5e2059c5ff10a",
"restaurant_id": "57da6aeb4eafac04afd01bc5",
"category_id": "57da72e94eafac04afd01bc9",
"logo": "abcLogo",
"name": "subway item 1",
"detail": "great item",
"price": "10",
"rating": "5",
"__v": 0
}, {
"_id": "57da79e8d0b5e2059c5ff10b",
"restaurant_id": "57da6aeb4eafac04afd01bc5",
"category_id": "57da72e94eafac04afd01bc9",
"logo": "abcLogo",
"name": "subway item 2",
"detail": "great item",
"price": "10",
"rating": "5",
"__v": 0
}, {
"_id": "57da79efd0b5e2059c5ff10c",
"restaurant_id": "57da6aeb4eafac04afd01bc5",
"category_id": "57da72e94eafac04afd01bc9",
"logo": "abcLogo",
"name": "subway item 3",
"detail": "great item",
"price": "10",
"rating": "5",
"__v": 0
}, {
"_id": "57da79fcd0b5e2059c5ff10d",
"restaurant_id": "57da6aeb4eafac04afd01bc5",
"category_id": "57da72e94eafac04afd01bc9",
"logo": "abcLogo",
"name": "subway item 4",
"detail": "great item",
"price": "10",
"rating": "5",
"__v": 0
}]
}]
}, {
"_id": "57da6aeb4eafac04afd01bc5",
"name": "asdadsasdasdas",
"city": "karachi",
"area": "johar town",
"min_order": "200 AED",
"del_time": "1 hour",
"del_fees": "1 AED",
"pre_order": "NA",
"rating_star": "4",
"rating_no": 514,
"status": "OPEN",
"__v": 0,
"categories": [{
"_id": "57da72e94eafac04afd01bc9",
"restaurant_id": "57da6aeb4eafac04afd01bc5",
"name": "subways Burger",
"category_id": "1",
"__v": 0,
"items": [{
"_id": "57da7973d0b5e2059c5ff10a",
"restaurant_id": "57da6aeb4eafac04afd01bc5",
"category_id": "57da72e94eafac04afd01bc9",
"logo": "abcLogo",
"name": "subway item 1",
"detail": "great item",
"price": "10",
"rating": "5",
"__v": 0
}, {
"_id": "57da79e8d0b5e2059c5ff10b",
"restaurant_id": "57da6aeb4eafac04afd01bc5",
"category_id": "57da72e94eafac04afd01bc9",
"logo": "abcLogo",
"name": "subway item 2",
"detail": "great item",
"price": "10",
"rating": "5",
"__v": 0
}, {
"_id": "57da79efd0b5e2059c5ff10c",
"restaurant_id": "57da6aeb4eafac04afd01bc5",
"category_id": "57da72e94eafac04afd01bc9",
"logo": "abcLogo",
"name": "subway item 3",
"detail": "great item",
"price": "10",
"rating": "5",
"__v": 0
}, {
"_id": "57da79fcd0b5e2059c5ff10d",
"restaurant_id": "57da6aeb4eafac04afd01bc5",
"category_id": "57da72e94eafac04afd01bc9",
"logo": "abcLogo",
"name": "subway item 4",
"detail": "great item",
"price": "10",
"rating": "5",
"__v": 0
}]
}]
}, {
"_id": "57da6aeb4eafac04afd01bc5",
"name": "multan asdasda",
"city": "multan",
"area": "johar town",
"min_order": "200 AED",
"del_time": "1 hour",
"del_fees": "1 AED",
"pre_order": "NA",
"rating_star": "4",
"rating_no": 514,
"status": "OPEN",
"__v": 0,
"categories": [{
"_id": "57da72e94eafac04afd01bc9",
"restaurant_id": "57da6aeb4eafac04afd01bc5",
"name": "subways Burger",
"category_id": "1",
"__v": 0,
"items": [{
"_id": "57da7973d0b5e2059c5ff10a",
"restaurant_id": "57da6aeb4eafac04afd01bc5",
"category_id": "57da72e94eafac04afd01bc9",
"logo": "abcLogo",
"name": "subway item 1",
"detail": "great item",
"price": "10",
"rating": "5",
"__v": 0
}, {
"_id": "57da79e8d0b5e2059c5ff10b",
"restaurant_id": "57da6aeb4eafac04afd01bc5",
"category_id": "57da72e94eafac04afd01bc9",
"logo": "abcLogo",
"name": "subway item 2",
"detail": "great item",
"price": "10",
"rating": "5",
"__v": 0
}, {
"_id": "57da79efd0b5e2059c5ff10c",
"restaurant_id": "57da6aeb4eafac04afd01bc5",
"category_id": "57da72e94eafac04afd01bc9",
"logo": "abcLogo",
"name": "subway item 3",
"detail": "great item",
"price": "10",
"rating": "5",
"__v": 0
}, {
"_id": "57da79fcd0b5e2059c5ff10d",
"restaurant_id": "57da6aeb4eafac04afd01bc5",
"category_id": "57da72e94eafac04afd01bc9",
"logo": "abcLogo",
"name": "subway item 4",
"detail": "great item",
"price": "10",
"rating": "5",
"__v": 0
}]
}]
}]
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<body ng-app="myapp" ng-controller="myctrl">
<ul>
<li ng-repeat="rest in rests track by rest.city">
<input name="rest.city" type="checkbox" value="rest.city" ng-click="includeCity(rest.city)">
<label for="rest.city">{{rest.city}}</label>
</li>
</ul>
<ul>
<li ng-repeat="rest in rests | filter: cityFilter">
<p ng-bind="rest.name"></p>
<p ng-bind="'Rating ' + rest.rating_star"></p>
<p ng-bind="'Status ' + rest.status"></p>
<p ng-bind="'Area ' + rest.area"></p>
</li>
</ul>
</body>
如果它是一個angular2應用程序,你將需要實現自定義管道/過濾器和使用它,因爲由於性能問題,angular2沒有內置的排序過濾器。 –
當然你可以使用Angular JS過濾器,所以你可以繼續向我們展示你到目前爲止嘗試過的東西嗎? – nikjohn
沒有即時通訊不在角度2它是在角度1.x –