好的,我在这里很困惑。
我在dashboard.info上有以下路线。我知道模板与此路由相关,因为“提交”等操作完全正常。
// dashboard/info.js
export default Ember.Route.extend({
testContent: "hey what's up",
actions: {
submit() {
//blah blah blah
}
},
});
出于某种原因,像testContent这样的属性没有显示在我的模板上:
//dashboard/info.hbs
<p>Should be here: {{testContent}}</p>
好像很简单!我很迷惑。也许这还不够信息。这是可能相关的东西,我在这个'form-nav'组件中加载,而这个组件又包含几个包含我输入的'panel'组件。
<form {{action "submit" on="submit"}}>
{{info.form-nav model=model}}
</form>
我可以在路线中混淆Ember中有太多嵌套组件吗?可能是因为我没有实例化控制器吗?我以为Ember试图离开控制器......
如果我可以包含更多相关信息,请参阅。会看。谢谢!
答案 0 :(得分:1)
尽管Ember试图远离控制器,但它们还没有消失。如果您希望testContent
模板中显示templates/dashboard/info.hbs
,则需要进入controllers/dashboard/info.js
控制器。
答案 1 :(得分:1)
可以有另一种方式,好像你想在“routes / dashboard / info.js”中定义你的变量,并想在“templates / dashboard / info.hbs”中使用。比你可以使用“setupController”钩子并设置“testContent”。设置完成后,可以在“templates / dashboard / info.hbs”中轻松使用。
// dashboard/info.js
export default Ember.Route.extend({
testContent: "hey what's up",
setupController: function(controller) {
//you can set route variable to controller variable like in below so that it can be easily available in template for rendering purpose
controller.set('testContent', this.get("testContent");
this._super(controller, model);
}
actions: {
submit() {
//blah blah blah
}
},
});