Ember模板不显示路径js文件中的属性

时间:2016-04-18 19:20:41

标签: ember.js

好的,我在这里很困惑。

我在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试图离开控制器......

如果我可以包含更多相关信息,请参阅。会看。谢谢!

2 个答案:

答案 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 
        }
    },
});