Ember Navbar需要在更改时显示模型数据

时间:2013-07-06 21:56:55

标签: ember.js

我正在开发一个需要在登录后修改导航栏内容的应用程序。这是我放在一起的基本草图(在线其他样品的帮助下): http://jsbin.com/umutag/1/使用此基础代码:http://jsbin.com/umutag/1/edit

如何获取标题视图以显示模型数据?

我是否应该为模板使用不同的帮助器? (例如{{view}},{{render}}或{{control}})

顺便说一下,我已经搜索过这个网站和其他网站了,但大多数参赛作品已经有几个月了,我看到ember自那时以来一直在变化很多(或者我错过了一些明显的东西)。以上示例使用Ember 1.0.0 RC6。

布赖恩

1 个答案:

答案 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}}