【问题标题】:How to trigger a computed property using the global ember-data store?如何使用全局 ember-data 存储触发计算属性?
【发布时间】:2013-10-30 02:55:39
【问题描述】:
App.FooController = Ember.ObjectController.extend({
    available: function() {
        var all = this.store.all('bar');
    }.property()
});

将另一个模型“bar”添加到全局 ember-data 存储时,如何触发属性重新计算?

我正在使用最新的稳定版 ember 1.1.2 和 ember-data 1.0 beta 3

【问题讨论】:

    标签: ember.js ember-data


    【解决方案1】:

    All 是一个活动过滤器,这意味着它应该自行更新。此外,多次调用 all 将返回相同的“过滤”数组。如果你需要一个不同的计算属性来依赖它,你可以使用每个:

    App.FooController = Ember.ObjectController.extend({
        available: function() {
            return this.store.all('bar');
        }.property(),
    
        someTriggerProperty: function(){
    
        }.property('available.@each')
    });
    

    我睡眠不足,所以我可能遗漏了什么,或者没有正确解释某些事情。这是一个例子,你能告诉我我认为不正确的部分吗:

    http://emberjs.jsbin.com/OLaYOPI/1/edit

    【讨论】:

    • 它似乎不会自行更新。我做了一个 this.store.all('bar').clear() 然后重新填充它-除非我手动刷新浏览器(我可能做错了什么),否则这个计算属性永远不会再次触发?
    • 哪个计算属性?可用,还是 someTriggerProperty?
    • 只是商店本身 - 当我清除它或添加到它时,我不知道如何触发计算属性(除非我可以在商店更新时触发,否则触发器将不起作用)跨度>
    • 查看更新后的回复,填写我缺少的内容。
    猜你喜欢
    • 2014-03-11
    • 2014-07-09
    • 2018-05-24
    • 1970-01-01
    • 2014-12-21
    • 1970-01-01
    • 2015-05-24
    • 1970-01-01
    • 2023-04-03
    相关资源
    最近更新 更多