我正在开发一个需要在登录后修改导航栏内容的应用程序。这是我放在一起的基本草图(在线其他样品的帮助下): http://jsbin.com/umutag/1/使用此基础代码:http://jsbin.com/umutag/1/edit
如何获取标题视图以显示模型数据?
我是否应该为模板使用不同的帮助器? (例如{{view}},{{render}}或{{control}})
顺便说一下,我已经搜索过这个网站和其他网站了,但大多数参赛作品已经有几个月了,我看到ember自那时以来一直在变化很多(或者我错过了一些明显的东西)。以上示例使用Ember 1.0.0 RC6。布赖恩
答案 0 :(得分:1)
您最终希望绑定控制器中的值(可能是ApplicationController
),以跟踪用户是否已登录。由于这与登录有关,因此您很可能会像SessionController一样跟踪令牌。这是一种方法:
App.SessionController = Em.Controller.extend({
token: null,
username: null,
isLoggedIn: function() {
return !!this.get("token");
}.property("token");
// ...
});
App.ApplicationController = Em.Controller.extend({
needs: "session",
isLoggedInBinding: "controllers.session.isLoggedIn",
usernameBinding: "controllers.session.username"
//...
});
在模板中的导航栏中:
{{#if isLoggedIn}}
<li>Logged in as {{username}}</li>
<li>{{#linkTo "index"}}Home{{/linkTo}}</li>
<li>{{#linkTo "secret"}}Secret{{/linkTo}}</li>
{{else}}
<li>{{#linkTo "login"}}Log in{{/linkTo}}</li>
{{/if}}