1

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

如何让标题视图显示模型数据?

我应该为模板使用不同的助手吗?(例如 {{view}}、{{render}} 或 {{control}})

顺便说一句,我已经搜索了这个网站和其他网站,但大多数条目都是几个月前的,我看到 ember 从那时起发生了很大变化(或者我遗漏了一些明显的东西)。上面的示例使用 Ember 1.0.0 RC6。

布莱恩

4

1 回答 1

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}}
于 2013-07-06T22:18:07.440 回答