对完成的Ember Data做出反应有很多查询

时间:2013-06-02 19:56:42

标签: ember.js ember-data

我使用Ember 1.0.0-RC3和Ember Data。当成功加载 hasMany 关系时,我需要对 有效 作出反应。

我的域名模型在概念上看起来像这样:

App.Person = DS.Model.extend({
    fullName: DS.attr("string"),
    friends: DS.hasMany("App.Person")
});

我使用Ember Data的默认DS.RESTAdapter。其默认行为是在一个大批量请求中按需加载 hasMany 关系。

由于somePerson可能有很多friends,因此从服务器返回friends关系可能需要一些时间。

我希望在请求hasMany关系期间向服务器用户提供视觉反馈(例如微调动画),直到服务器响应结果。

如何有效地完成此要求?是否有可用于插入自定义“startedLoading”和“finishedLoading”回调的挂钩?

1 个答案:

答案 0 :(得分:0)

bindAttr属性的句柄视图中试用friends.isLoaded

<span {{bindAttr class="friends.isLoaded:loading:hide"}}></span>

对于更高级的处理,您可以在控制器中执行Ember.observer

App.PersonController = Ember.ObjectController.extend({

    watchFriends: Ember.observer(function(){
        var loaded = this.get('friends.isLoaded')
    }, 'friends.isLoaded')

})