2014-01-22 96 views
3

我有json数据,我希望它通过过滤器如流派显示。 最后一个问题从How to filter JSON-Data with AngularJs?不工作给我。如何过滤JSON数据与AngularJs

myapp.js

var myApp = angular.module('myApp', []); 

myApp.controller('myApp', function($scope) { 

$scope.isoffice = function(apps) { 
    return apps[0].genre === "office"; 
}; 

$scope.apps = [ 
    { 
    "id": "stardict", 
    "genre": "aksesoris", 
    "name": "Stardict" 
}, 
{ 
    "id": "libreoffice", 
    "genre": "office", 
    "name": "LibreOffice" 
}]; 
} 

我的index.html

<div ng-repeat="app in apps | filter:isoffice"> 
    {{apps[0].name}} 
</div> 

做我丢失somethink? 谢谢..

+1

apps [0] .genre应该是apps.genre – dandavis

+0

哇,谢谢.. 它适用于我。他们两个.. :)) –

回答

8

你不需要一个比较器功能来做那个过滤。您可以使用此:

<div ng-repeat="app in apps | filter:{genre:'office'}"> 
    {{app.name}} 
</div> 

请注意,我用app.name显示由ngRepeat产生的电流应用。 apps[0].name将重复显示第一个条目(如果多个条目与您的过滤器匹配)。

demo fiddle

如果你想用一个比较功能,这将工作(一个对象每次在发送,所以你不想引用它作为一个数组):

$scope.isoffice = function(apps) { 
    return apps.genre === "office"; 
}; 

comparator demo

+0

这工作完美。谢谢.. :) –

+0

为什么如果你做console.log(应用程序)结果是4个对象(第一行2和第二行2) –