在ember js

时间:2016-04-06 14:27:14

标签: javascript ember.js

  1. 列表项
  2. 我有登录控制器。登录成功后,我正在调用controller.transitionToRoute(' patients.index'),这是我的仪表板。页面被reder但我的标题菜单没有更新。如果我尝试通过按F5刷新页面,那么我的标题会更新。

    提前致谢。

    我的控制器:

    export default Ember.Controller.extend({
        login: Ember.inject.service('testservice'),
        actions: {
        authenticate: function() { 
        var controller=this; 
             controller.set('login').currentUser=false;
             controller.transitionToRoute('dashboard.index');
           },
        }
    
    });
    

    信息中心路线:

    export default Ember.Route.extend({
      authManager: Ember.inject.service('testservice'),
         renderTemplate: function() {
            this.render({
                 outlet: 'master',
            });
         },
    });
    

    application.hbs handlbar:

    <header id="main">
    

    {{#link-to 'index'}}<img id="logo" src="assets/logo.png"/>{{/link-to}}
    
    <ul id="user">
      <li><a id="user-icon"></a>
        <ul>
          {{#if isUser}}
            <li>{{#link-to 'account.edit'}}Account{{/link-to}}</li>
            <li>{{#link-to 'account.invitation'}}Invite{{/link-to}}</li>
    
            <li><a {{action 'logout'}}>Logout</a></li>
          {{else}}
            <li><a {{action 'Userlogin'}}>Login</a></li>
          <li>{{isUser}}</li>
    
          {{/if}}
    
        </ul>
      </li>
     </ul>
    
    </div>
    </header>
    
    <div class="container">
      {{outlet}}
    </div>
    

    应用程序控制器:

    export default Ember.Controller.extend({
        login: Ember.inject.service('testservice'),
        isUser:function() {
           return this.get('login').currentUser;
        }.property('login'),
    });
    

1 个答案:

答案 0 :(得分:0)

controller.set('login').currentUser=false;以及return this.get('login').currentUser;错了!

首先是什么controller? 您可能希望使用Ember.set(this, 'login.currentUser' true)this.set('login.currentUser', true)this.get('login').set('currentUser', true)

为了得到它一样。通常从不...get(...).something! 只需this.get('login.currentUser')Ember.get('login.currentUser')

顺便说一句,你可以重写

isUser:function() {
   return this.get('login').currentUser;
}.property('login'),

isUser: Ember.computed.alias('login.currentUser'),