Ember 및 Ember-data : 저장소가로드되고 / 또는 관련보기가 다시 렌더링되면 콜백을 설정하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/8992984

  •  13-11-2019
  •  | 
  •  

문제

에 이크 및 ember-data를 사용하여 사용자 정의 어댑터 내의 FindAll 호출을 사용하여 REST API에서 몇 백 오브젝트를로드합니다.FindAll을 참조하는 ArrayController.Content를 사용하고 최근에 eMber를 추가했습니다.선택 위젯 / 드롭 다운 메뉴에서 객체를 표시하려면 선택하십시오.모든 객체 (각 객체가 선택 옵션)로 완전히 렌더링되면 선택한 위젯에서 함수를 실행해야합니다. 특히 chosen.js 라이브러리 .

이벤트에 콜백을 사용하여 선택에서 수백 개의 객체를 처리하기 위해 조간 (2-4 초)이 필요하기 때문에 ember.select.dInsertElement 및 Ember.ArrayController.ContentDidChange가 꽤 작동하지 않습니다.그들은 둘 다 너무 빨리 불을 지폈습니다.그렇다면 다른 이벤트가 있거나 대신 사용할 수있는 또 다른 방법이 있습니까?

도움이 되었습니까?

해결책

DS.RESTAdapter.findQuery는 대답입니다!DS.RESTAdapter.findAll 메소드와 달리, 앱의 어느 위치에서나 관찰 할 수있는 isLoaded 에 적절하게 DS.AdapterPopulatedModelArray를 생성하고 반환합니다!

예 :

App.store = DS.Store.create({
    adapter: DS.RESTAdapter.create()
});

App.set('MyItemList', App.store.findQuery(App.Item, 'homepageList'));

App.MyView = Ember.View.extend({
    refresh: function () {
        console.log('finished loading custom list');
    }.observes('App.MyItemList.isLoaded')
});
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top