如何在EmberJS的子模板中使用父模板的属性?

时间:2014-03-13 05:46:13

标签: templates ember.js controller

我在应用程序路由(/newLicense)中定义的'/'路由为:

App.Router.map(function() {
    this.route('newLicense', {path: '/newLicense'});
});

我在应用程序控制器中有一个名为is_admin的属性,每次调用应用程序控制器时都会正确设置该属性。现在在newLicense模板中,我想根据登录用户是否为admin(存储在应用程序控制器的is_admin中)显示消息。

我试过

{{#if is_admin}}
    <p> You are logged in as Admin user. </p>
{{else}}
    <p> You are logged in as Read-Only user. </p>
{{/if}}

但它不起作用。我还尝试在newLicenseController中提供应用程序控制器:

App.newLicenseController = Ember.ObjectController.extend({
    needs: ['application'],
});

但它仍然没有用。然后我尝试{{#if application.is_admin}}仍然没有运气。

非常感谢对此概念的任何帮助。感谢。

1 个答案:

答案 0 :(得分:1)

知道了。这是一个简单的错误。应该访问需求中列出的控制器的属性:{{controllers.controller_name.property_name}}。

所以在这种情况下,它会变成:

{{#if controllers.application.is_admin}}
    <p> You are logged in as Admin user. </p>
{{else}}
    <p> You are logged in as Read-Only user. </p>
{{/if}}