每次加载路线时的灰烬观察者/运行时间表

时间:2016-10-28 07:49:58

标签: ember.js

我在Ember控制器中有一个属性,它有一个观察者。当我第一次访问页面/路由时以及当我更改值绑定的下拉列表时(如预期的那样),就会调用此方法。

发生的事情是,当我重新访问该页面并且重新设置该值时,观察者被触发(与我离开页面时的值相同)。

我需要这个的原因是,该值被用作另一个函数的过滤器,并且该函数在观察者内部被调用。

即使值与以前相同,有没有办法让观察者着火? 或者,每次加载/路由访问控制器时,从控制器触发一个函数(可能是通过运行循环)的合理方法?

2 个答案:

答案 0 :(得分:0)

在setupController路由挂钩中,您将获得controller引用,以便您可以使用它来调用观察者函数。

setupController(controller,model){
    this._super(...arguments);    
    controller.get('testObserver')();
}

答案 1 :(得分:0)

我更喜欢以下风格来观察房产。

setupController(controller, model){
    if (this.get('somelogic')) {
        controller.addObserver('yourProperty', controller, this.get('callback'));
    }
}

resetController(controller, isExisting, transition) {
    if (isExisting) {
        controller.removeObserver('yourProperty', controller, this.get('callback'));
    }
}