我有需要使用特定模板和控制器将自定义视图添加到容器视图的用例。不幸的是,这仅在我的模板中没有“linkTo”帮助程序时才有效。一旦我添加了这个,我就不能再设置自定义控制器了。
<script type="text/x-handlebars" data-template-name="page1link">
<!-- remove this line and it will work -->{{#linkTo "page1"}}Go to Page 1{{/linkTo}}
<p>Link template</p>
</script>
App.IndexView = Ember.ContainerView.extend({
didInsertElement: function(){
var LinkView = Ember.View.extend({
templateName: "page1link",
controller: Ember.Controller.create()
});
for(var i = 0; i < 4; i++){
this.pushObject(LinkView.create());
}
}
});
我总是得到以下异常:
未捕获的类型错误:无法调用 null 的方法“查找”
在 ember 代码的以下部分:Ember.LinkView
...
router: Ember.computed(function() {
return this.get('controller').container.lookup('router:main');
Uncaught TypeError: Cannot call method 'lookup' of null
}),
...
在这种情况下,不知何故未设置容器。
我创建了一个显示这个问题的小提琴。有没有更好的方法来用 ember 实现这一点?
感谢您的任何提示!