2014-07-21 4 views
-3

범위로 저장하고있는 json 객체를 취하는 최선의 방법을 알아 내려고하고 필터/쿼리를 사용하여 특정 데이터를 표시합니다. 예를 들어각도로 JSON 객체로 드릴 다운

:

$scope.myBook = {"bookName": "Whatever", 
    "pages": [ 
     {"pageid": 1, "pageBody": "html content for the page", "pageTitle": "Page 1"}, 
     {"pageid": 2, "pageBody": "html content for the page", "pageTitle": "Page 2"}, 
     {"pageid": 3, "pageBody": "html content for the page", "pageTitle": "Page 3"}, 
    ] 
} 

내가 페이지 id에 대한 개체를 잡아 가겠어요 방법 : 2?

+0

'pageid : 2'의'pageBody'를 가져 오는 것을 의미합니까? – ForgetfulFellow

+0

'for()'를 사용하여 필요한 페이지를 찾은 다음'foundPage.pageBody'를 사용하십시오. – zerkms

답변

0
function getPage (id) { 
    angular.forEach($scope.myBook.pages, function (page, pageIndex) { 
     if (page.pageId == id) { 
      console.log("Do something here."); 
      return page; 
     } 
    }); 
} 

그렇지 않으면. . .

$scope.myBook.pages[1]; 
1

당신은이 방법을 사용할 수 있습니다

템플릿 :

<div ng-repeat="page in myBook.pages | filter:pageMatch(pageid)"> 
    {{ page.pageBody }} 
</div> 

범위 :

$scope.pageMatch = function(pageid) { 
    return function(page) { 
     return page.pageid === pageid; 
    }; 
}; 

설정 pageid 필요한 값으로 filter:pageMatch(pageid)에 필요한 페이지의 내용을 표시합니다.

0

나는 AngularJS IRC에 질문을했습니다. 그리고 사람들 중 한 사람이이 덩어리를 정확히 내가 찾던 것과 합칩니다. 답에 대한 https://github.com/robwormald

Plnkr Example

소품.

/* See PLNKR Link Above for the answer */