我已经定义了一个Ember对象,它只包含一些函数。我想在我的模板中访问这些功能,但不知何故它不起作用。没有给出错误,也没有任何日志声明。
App.AuthManager = Ember.Object.extend({
isAuthenicated : function () {
return true;
}
}).create();
现在在我的模板中我想
{{#if App.AuthManager.isAuthenticated}}
<ul>...</ul>
{{/if}}
if语句中的标记总是打印出来,这里没有把手解释对象函数吗?
答案 0 :(得分:4)
Handlebars Basic指南指出
Each template has an associated controller: this is where the template finds the properties that it displays.
这意味着模板的范围是控制器,只有控制器,您不能直接从把手模板访问应用程序中的其他对象。
我认为您尝试实现的目标可以使用register的inject和Ember.Application class函数完成。
在控制器中注入AuthManager对象后,您应该能够在模板中访问属性isAuthenticated,如下所示:
{{#if isAuthenticated }}
<ul>....</ul>
{{/if}}
我的答案来自本网站:http://madhatted.com/2013/5/26/communication-between-controllers-in-ember-js