2016-04-06 9 views
0
  1. リストアイテムIは、コントローラにログインしている

で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

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

を書き換えることができますか? – 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)を使用します。

については同じです。通常never do ...get(...).something! ちょうどthis.get('login.currentUser')またはEmber.get('login.currentUser')を実行してください。


ところで、あなたは関連するすべてのコードを含めることができます

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

申し訳ありませんが、私はvar controller = thisを追加しませんでした。私の上記のコントローラコードで。私は自分のコードを更新しました – Gopalkrishna

+0

@Gopalkrishnaはまだ 'controller.set( 'login').currentUser = false;'が間違っています! '='を使わないでください! – Lux

関連する問題