2014-01-22 3 views
3

json 데이터가 있고 장르와 같은 필터로 표시하고 싶습니다. 마지막 질문 : How to filter JSON-Data with AngularJs? 저에게 맞지 않습니다.AngularJs로 JSON 데이터를 필터링하는 방법

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

앱 [0]. 게이머는 apps.genre이어야합니다. – dandavis

+0

와우, 고마워요. 내게 맞습니다. 둘 다 .. :)) –

답변

8

필터링을 수행하기 위해 비교 기능이 필요하지 않습니다. ngRepeat에 의해 생성 된 현재 응용 프로그램을 표시 할 수

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

주 내가 app.name를 사용하는 : 당신은이를 사용할 수 있습니다. apps[0].name은 첫 번째 항목을 반복하여 표시합니다 (필터와 일치하는 항목이 여러 개인 경우).

demo fiddle

당신이 비교 기능을 사용하려면,이 작동합니다 (당신이 배열로 참조하지 않도록 하나의 객체는 각각의 시간에 전송됩니다) :

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

comparator demo

+0

이것은 완벽하게 작동합니다. 감사합니다 .. :) –

+0

console.log (apps)를 실행하면 결과가 4 객체 (첫 번째 행에는 2, 두 번째 행에는 2)가 표시됩니다. –

관련 문제