根据我的理解,输入setupController
时应始终调用Ember.Route
。
设置断点,我观察到model
挂钩被调用,但setupController
挂钩没有。
可能的原因是什么?
var FooBarRoute = Ember.Route.extend({
model: function(params) {
//breakpoint here
return {
slug: params.slug,
};
},
setupController: function(controller, model) {
// breakpoint here
this._super.apply(this, arguments);
controller.set('slug', model.slug);
},
});
export default FooBarRoute;
答案 0 :(得分:0)
FWIW,我在FooBarController
:
setup: function() {
this.updateParentData();
}.on('init'),
updateParentData: function() {
this.set('controllers.foo.barproperty', this.get('something'));
},
将.set()
包裹在Ember.run.next()
中为我解决了问题。
setup: function() {
this.updateParentData();
}.on('init'),
updateParentData: function() {
Ember.run.next(() => {
this.set('controllers.foo.barproperty', this.get('something'));
});
},
虽然我已经解决了手头的问题, 我不确定它的原因是什么, 以及这是我的代码中的错误,还是在Ember ... 有什么解释吗?