ember.js - 使用 Ember 和 Ember-data : How to setup callback when a store is finished loading, 和/或关联 View 何时完成重新渲染?

标签 ember.js ember-data

我正在使用 Ember 和 Ember-data 从 REST API 加载几百个对象,使用自定义适配器中的 findAll 调用。我有一个引用 findAll 的 ArrayController.content,然后使用 recently added Ember.Select在选择的小部件/下拉菜单中显示对象。一旦使用所有对象(每个对象都是选择的一个选项)完全呈现,我需要在选择小部件上运行一个函数 - 特别是 Chosen.js library .

因为处理选择中的几百个对象需要一点时间(2-4 秒),所以在事件 Ember.Select.didInsertElement 和 Ember.ArrayController.contentDidChange 上使用回调不太有效;他们都过早地开火。那么是否有另一个事件或另一种方法可以替代?

最佳答案

DS.RESTAdapter.findQuery就是答案!对比DS.RESTAdapter.findAll方法,它创建并返回 DS.AdapterPopulatedModelArray ,它有自己的 isLoaded 正确,你可以在你的应用程序的任何地方观察!

例如:

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')
});

关于ember.js - 使用 Ember 和 Ember-data : How to setup callback when a store is finished loading, 和/或关联 View 何时完成重新渲染?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8992984/

相关文章:

javascript - 带有全屏 API 的 Ember.js 历史

javascript - 没有任何东西处理 Emberjs 2 的操作

javascript - 如何使用 EmberData 创建非持久模型?

javascript - Ember.js 在运行类方法时抛出 "has no method"错误

javascript - 如何自行初始化/使用 ember-data(无需 ember-cli)?

javascript - 在 ember-cli 中使用 ID 路由

javascript - 如何在 Ember.js 中创建多选列表

ember.js - 捕获所有操作处理程序

ember.js - 使用 JasmineJS 测试 Ember Data 1.0.0

javascript - Ember.js 测验问题 : save/delete hasMany data