我有一个搜索框,我试图过滤2件事,但只有一件正在过滤。
我有这个:
<!--this is the input-->
<input type="search" placeholder="Sports finder" ng-model="query">
<!--this is the filter working-->
<div ng-repeat="sport in sports | filter:query"
ng-show="sport.leagues.length">
<!--this is the one which is not working-->
<div ng-repeat="league in sport.leagues">
我已经尝试过:
<div ng-repeat="league in sport.leagues | filter:query">
有人说过滤器不能正常工作,因为最后一个过滤器正在返回一个对象而不是一个数组。
这是我提取类型的代码:
AuthFactory.getCustomer().then(function(customer) {
$scope.customer = customer;
SportsFactory.getSportsWithLeagues(customer).then(function(sports) {
$ionicLoading.hide();
if (sports.length) {
$scope.sports = sports;
console.log($scope.sports);
console.log('on controller js I am an ' + typeof($scope.sports));
}else {
AuthFactory.logout();
}
第一个控制台日志返回:
[Object, Object, Object, Object, Object]
和第二个:
on controller js I am an object
我们打开你在那里看到的那些数据然后,一旦打开就回来了:
>0: Object
>1: Object
>2: Object
>3: Object
>4: Object
>5: Object
现在让我们打开>0: Object
返回:
$$hashKey: "object:54"
checked: true
id: 26
> leagues: Array[3]
name: 'Live Betting'
priority: 0
> proto: Object
并且事情就是这样:我的过滤器在第一个[Object, Object, Object, Object, Object]
上正常工作,但我还需要让它在那里工作,看看leagues: Array[3]
如果我打开它返回:
>0: Object
>1: Object
>2: Object
如果你没有得到,请在截图上看到:
http://storage3.static.itmages.com/i/15/0121/h_1421875540_4177075_1b0b871a32.png
和
http://storage1.static.itmages.com/i/15/0121/h_1421875594_6426465_3e908c6363.png
实际上非常奇怪,I have a Plunkr here,它正如我所期望的那样正常工作,我使用从网络控制台复制的Json来完成它。
例如:如果您输入国际或希腊,您会看到过滤器返回:
International Basketball
GREECE A1
但在我的应用中,如果您输入国际,过滤器会返回上面我需要的内容,如果我只输入希腊,则过滤器不会返回任何内容
更新
看看这个Plunkr,根本不工作,但至少你可以看到我的完整代码: http://plnkr.co/edit/bfU8ynzmsQZk57dYXFUj?p=preview
答案 0 :(得分:1)
我认为console.log可能会欺骗你。单击控制台中的对象以检查其属性时。它显示了单击它时的属性,而不是打印它时的属性。
试试这个。 console.log(angular.toJson($scope.sports, true));
所以你可以看到那时你到底有什么。