0

当我们退出适当的路线时,控制器会发生什么?设置在那里的观察员继续做他们的工作是正确的吗?如果是这样,避免这种情况的正确方法是什么?一些与 setupController 相反的方法?

4

1 回答 1

1

是的,观察者仍然存在,我通常对观察者观察另一个可能在另一个屏幕中更改的属性所做的事情是,我在激活/停用路由的挂钩中手动设置/删除它们,如下所示:

var controllerWhereThePropertyToObserveIs = this.controllerFor('fancyController');
controllerWhereThePropertyToObserveIs.addObserver('propertyToObserveForChanges', this.controllerFor('controllerWhereTheObserverWouldBe'), 'functionToFire');

然后,将其删除:

var controllerWhereThePropertyToObserveIs = this.controllerFor('fancyController');
controllerWhereThePropertyToObserveIs.removeObserver('propertyToObserveForChanges', this.controllerFor('controllerWhereTheObserverWouldBe'), 'functionToFire');
于 2013-10-31T23:40:30.847 回答