模型钩子被调用,但是在Ember.Route中没有调用setupController钩子

时间:2014-08-05 06:21:39

标签: ember.js

根据我的理解,输入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;

1 个答案:

答案 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 ... 有什么解释吗?