addObserver在本地工作,但不在addon中工作

时间:2014-12-15 07:30:45

标签: ember.js

我有一个工作的Mixin课程,我已经转换为插件,原因让我感到困惑的是:

Ember.addObserver(self, prop, self, Ember.run.bind(self, self.addDynamicObserver, prop));

在插件中没有任何位置,但在Mixin类的本地定义中按预期工作。

可以在Mixin类的初始值设定项中找到此调用:

_initialise: function() {
    var self = this;
    try {
        this.eachAttribute(function(prop,meta) {
            if(meta.type === "dictionary") {
                Ember.addObserver(self, prop, self, Ember.run.bind(self, self.addDynamicObserver, prop));
            }
        });         
    } catch (e) {
        console.warning('Dictionary mixin did not initialise. Note: the dictionary mixin should only be used by a Model-derived class.');
    }
}.on('init'),

在这两种情况下(本地实施插件):

  1. 测试是在带有'字典'的模型上运行的。属性
  2. ' init' event触发对_initialise()
  3. 的调用
  4. 执行addObserver() 的调用
  5. 的条件块
  6. 在任一实施方法中均未记录任何错误
  7. 但是,如上所述,addon对addObserver()的调用永远不会调用self.addDynamicObserver

    任何帮助都将不胜感激。

0 个答案:

没有答案