2013-05-24 2 views
0

서버를 쿼리하기 위해 DS.RestAdapter, 개정 12를 사용하고 있지만 한 번 이상 쿼리하면 페이지에 결과를 표시하는 데 어려움을 겪고 있습니다.Ember Data 검색 결과 표시

{{#if searchResults.isLoaded}} 
    {{searchResults.length}} 
{{/if}} 

으로 :

내 핸들 템플릿에서 다음
search: function() { 
    this.set('searchResults', App.Property.find()); 
} 

나는이 유사한 결과를 표시하는 코드를 가지고 :

나는 다음과 같은 행동에 묶여 검색 버튼을 사용하여 응용 프로그램을 이 구성은 검색 버튼을 클릭 할 때마다 JSON 요청이 만들어지고 모든 속성이 검색되어 화면에 표시됩니다. searchResults 객체의 유형은 DS.RecordArray이며 객체에 대한 참조는 일정하게 유지됩니다. ie .. 템플릿에 {[searchResults}}를 표시하면 얻을 수 있고 ID는 그대로 유지됩니다.

그러나, 곧 예를 들어, 매개 변수를 기반으로 쿼리에 코드를 변경 같이

다음
search: function() { 
    this.set('searchResults', App.Property.find({hello: 'world})); 
} 

때마다 나는 쿼리가 정확한 검색 매개 변수를 사용하여 서버로 구성되어 검색 버튼을 클릭 , 그리고 처음이 작업을 수행하면 검색 결과가 페이지에 올바르게 표시되지만 ...... 다시 검색을 클릭하면 결과가 사라집니다. 또한 searchResults 객체의 유형은 DS.AdapterPopulatedRecordArray이고 화면에 표시하면 검색을 클릭 할 때마다 {{searchResults}}가 새 인스턴스를 가져 오지만 isLoaded 속성은 항상 false이며 내 결과가 표시되지 않습니다.

내가 뭘 잘못하고 있니? 어떤 도움을 주셔서 감사합니다.

답변

0

누구나 이런 식으로 경험하는 경우, 내가로드 한 개체에 didLoad 함수를 덮어 썼기 때문에 문제가 발생했습니다. didLoad 함수에서 associatio가 비 었는지 확인하려고했는데, 그렇다면 브라우저에서 할당의 새 인스턴스를 만들고있었습니다.

이것은 내가로드하고 있던 객체의 전체 배열의 'isLoaded'상태를 엉망으로 만든 것 같습니다.