2017-02-07 5 views
1

私のアプリケーションでは、2つのフィールド(name1/name2など)を持つテンプレートファイルがあります。 ルート上の1つのパラメータ(「設定」)に基づいて、画面上に「レシピ1」または「レシピ2」のいずれかを表示します。 例:preferenceがvegの場合、私はRecipe1以外、Recipe2を表示する必要があります。 私はこれを以下のように試みましたが、うまくいきませんでした。Ember JSのフィールドの属性をルートから変更するにはどうすればいいですか

私が見ているのは、if/elseループの内側にあるが、ember。$ステートメントは違いがありません。助けてください。

+0

可能な限り直接操作を最小限に抑える必要があります。 –

+0

@li xinyangあなたはもう少し詳しく説明できます。今、それは望みどおりに機能していますが、どんな提案も参考になります。 – Rahul

答えて

1

最初にEmber.$beforeModelフックに書き込まないでください。それは間違っている。 beforeModelフックが呼び出されると、DOMは準備ができません。私は私の-receipe.hbs

{{my-receipe preference=preference }} 

をあなたはコンポーネントを作成し、コンポーネントに preferenceプロパティを渡すことを好むとチェックがHBSで

それを表示する場合は必要がありmy-receipeコンポーネントを作成し、template.hbsに含めます

{{#if isVeg}} 
<input type="text" id="Recipe1" /> 
{{else}} 
<input type="text" id="Recipe2" /> 
{{/if}} 

私-receipe.js

好みは野菜である場合はtrueを返しますisVeg計算プロパティを作成します。

export default Ember.Component.extend({ 
    isVeg: Ember.computed('preference', function() { 
     return Ember.isEqual(this.get('preference'), 'veg'); 
    }) 
}) 
+0

私のルートからhbsファイルにプリファレンス値を渡す方法を教えてください。私の場合、好みの値(veg/non veg)は簡単にURLパラメータなどに基づいてルートで導出されています。私は質問からそのコードをすべて削除しました。 – Rahul

+0

'{{my-recipipe preference = preference}}'これは、私がmy-recipe.jsの 'preference'のために定義されていないようにすると、 – kumkanillam

+0

というmy-receipe.hbsの設定を送信する場所です。 – Rahul

関連する問題