2016-04-06 83 views
0
  1. 列表項

我已經登錄控制器transitiontoroute()之後沒有更新。登錄成功後,我打電話給controller.transitionToRoute('patients.index')這是我的儀表板。頁面被拒絕,但我的標題菜單沒有更新。如果我嘗試通過點擊F5來刷新頁面,那麼我的標題會更新。父模板中燼JS

在此先感謝。

我的控制器:

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

可以包含任何相關的代碼? – vikram7

+0

@ vikram7,我已經包含代碼。基本上我想在登錄頁面重定向到儀表板模板後更新我的應用程序模板。提前致謝。 – Gopalkrishna

回答

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'), 
+0

對不起,我錯過了添加var controller = this;在我上面的控制器代碼中。我已更新我的代碼 – Gopalkrishna

+0

@Gopalkrishna仍然'controller.set('login')。currentUser = false;'是錯的!不要使用'='! – Lux