无法为Ember View指定控制器

时间:2013-12-27 22:57:02

标签: ember.js

我正在定义一个像这样的控制器:

App.LessonEnterController = Ember.Controller.extend({ /* logic */ });

这样的观点:

App.LessonEnterView = Ember.View.extend({
    init: function() {
        this._super();
        this.set("controller", App.LessonEnterController.create());
    }
});

我在this github issue找到了解决方法,但我也尝试过:

App.LessonEnterView = Ember.View.extend({
    controller: App.LessonEnterController.create()
    // also: controller: Ember.Controller.extend({ /* logic */ })
});

我在这样的模板中使用它:

{{#view App.LessonEnterView}}
    {{currentDaysAgo}} // Defined as currentDaysAgo: 0 in controller.
{{/view}}

以下是我尝试渲染时收到的错误消息:

Uncaught TypeError: Cannot call method 'has' of null

并且它根本不呈现任何内容。帮助

修改这是complete LessonEnterController的粘贴框。它做了很多事情。

1 个答案:

答案 0 :(得分:1)

在视图范围内,您需要引用控制器

{{#view App.LessonEnterView}}
    {{controller.currentDaysAgo}} // Defined as currentDaysAgo: 0 in controller.
{{/view}}

不幸的是,当您手动创建控制器时,容器将不会挂接所有细节。喜欢的需要。我建议渲染(如果不需要块)或渲染然后阻止