【发布时间】:2013-06-04 06:59:13
【问题描述】:
我有一个用例,我需要使用特定模板和控制器将自定义视图添加到容器视图。不幸的是,这仅在我的模板中没有“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 实现这一点?
感谢任何提示!
【问题讨论】:
-
“page1”是路由吗?另外,ember 不会为您创建一个控制器吗?由于您指定的是通用控制器,我建议您尝试删除它。
标签: ember.js