2012-04-28 3 views
4

멋진 웹 API 및 백본을 실험 한 것은 이번이 처음입니다. 지금까지 모든 것이 하늘에서 이루어진 일치처럼 보입니다. 그러나 OData 필터를 사용하여 관련 데이터를 반환하는 것 같습니다. 예를 들어 나는 다음과 같은 행동 방법을 가지고있다 :C# MVC에서 OData 필터 사용 4 Web Api 및 백본

//GET /api/posts/ 
    public IQueryable<KiaFamilyPost> Get() 
    { 
     return _db.Posts 
      .Include("Badge") 
      .Include("Entry") 
      .AsQueryable(); 
    } 

이제 위의 게시물을 필터링하고 내림차순으로 반환하고 싶습니다. 내 이해에서 다음을 수행 할 수 있습니다 "http : // [MySite]/api/posts? $ filter = id eq 2 & $ orderby = DatePost desc".

 APP.posts_collection.fetch({data: { 
      entryId: APP.entry.get('Id'), 
      $order: 'Id desc' 
     }}); 

백본 컨트롤러 "HTTP에 다음 호출을 : 나는 아무 소용이 다음을 수행하려고? // [내 사이트]/API/게시물 ENTRYID = 1 & % 24order = 아이디 + 내림차순 ". 누구나 올바르게 작동하도록 할 수 있습니까?

감사

이 코드가 작동하는 경우

답변

4

나는 Addy Osmani의 플러그인 (backbone.paginator)을 실험했습니다. MVC 4와 같은 웹 API를 사용하고 있다면, 이것이 큰 도움이 될 것이라고 믿습니다. Paginator가 제공하는 몇 가지 매개 변수로 컬렉션을 확장하는 것뿐입니다. 예 :

perPageAttribute: '$top', 

    skipAttribute: '$skip', 

    orderAttribute: 'orderBy', 

    customAttribute1: '$inlinecount', 

    queryAttribute: '$filter', 

    formatAttribute: '$format', 

    customAttribute2: '$callback',` 
+0

당신은 이것을 어디에서 씁니까? paginator_ui 섹션 또는 server_api 섹션에서? 클라이언트 호출기를 사용하거나 호출기를 요청합니까? – CallumVass

+0

페이지 매김 모음을 만들 때이 속성을 설정합니다. 위의 링크에는 예제가 있습니다. 아래쪽으로 아래로 스크롤하십시오. 클라이언트 페이지 매김 기는 이미 컬렉션에있는 모델 간의 페이지 매김을위한 것입니다. 요청 호출기는 서버에 요청을하고 페이지 매김 설정에 따라 모델 만 수신하려는 경우에 사용됩니다. 위의 링크는 더 깊이 논의 할 수 있어야합니다. – TYRONEMICHAEL

0

당신이 확인하십시오 수 타이론 : (나는 내가 APP.entry.url라는 URL을 얻기 위해, APP.entry이 모델이라고 가정)

var entryId = APP.entry.get('Id'); 
    var queryUrl = APP.entry.url() + '?$filter=id eq ' + entryId +'&$orderby=DatePost desc'; 
    APP.posts_collection.fetch({ url : queryUrl }); 

나는 그런 코드를 테스트하지는 않았지만 그것이 효과가 있거나 적어도 당신에게 단서를 제공하기를 바랍니다.

+0

답장을 보내 주셔서 감사합니다. 나는 fetch 메소드에서 매개 변수를 설정할 수 있기 때문에보다 우아한 해결책이 될 것이라고 생각했다. 어떤 이유로 $의 문자는 % 24까지 끝납니다. 이상하지만 addyosmani는 Backbone.js 용 페이 지너 플러그인을 개발했습니다. 그는 Neflix를 예로 들며 API는 MVC API의 API와 유사합니다. 나는 그것을 시도하고 다시 당신에게 돌아갈거야. – TYRONEMICHAEL