2016-07-23 14 views
0

navbarというテンプレートとコントローラの両方を作成しました。私は、コントローラを持っているコードは、単にブーリアンに基づいてember jsの要素の表示を切り替える

import Ember from 'ember'; 

export default Ember.Controller.extend({ 
    isLogged: true, 
}); 

とテンプレートで同じ動作していないようです

{{#if isLogged}} 
     {{#link-to 'login' class="uk-button uk-button-danger"}}Login{{/link-to}} 
     {{#link-to 'signup' class="uk-button uk-button-danger"}}Join now{{/link-to}} 
    {{else}} 
     {{#link-to 'dashboard' class="uk-button uk-button-danger"}}Dashboard{{/link-to}} 
    {{/if}} 
<button class="uk-button uk-button-large uk-button-primary uk-width-1-1" disabled={{isLogged}}>Test button</button> 

であるということです。私はどこかで間違っていますか?

テンプレートとコントローラはemberジェネレータを使用して生成されており、上記のコードは私が作成した唯一の変更です。

EDIT:

は、ドキュメントを探る、私はルートに定義されているコントローラの名前が同じでなければならないことに気づきました。今すぐnavbarは私がpartialを使用してインポートするテンプレートですが、私は同じものに使用する可能性のある回避策はありますか?

答えて

0

これにはコンポーネントを使用する必要があります。

{{partial}}は、現在のコンテキストでテンプレートをレンダリングする場合にのみ使用します。 .hbsファイルが大きくなった場合にのみ使用しますが、ごくまれに使用します。しばしばコンポーネントがより良い選択肢です。

また、ほとんど使用しないでください。{{render}}ほとんどの場合、それをコンポーネントにリファクタリングすることができます。また、先端のための{{render}} with a model param is deprecated.

+0

感謝を使用して

。ここの初心者はドキュメントを手に入れるのに時間がかかりました。申し訳ありませんが、回答を限定された評判upvoteすることはできません:( –

+0

私は助けることができるとうれしいですが、[受け入れる]を検討する(http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer -work)答えの一つは、投票特権を必要としません。 – Lux

+0

それを行いました。もう一度お手伝いしてくれてありがとう:) –

0

問題は「部分的に」はコントローラではなくテンプレートのみを提供するということでした。このための正しい方法は、ビューとコントローラもインポートするrenderを使用することです。

関連する問題