2016-03-23 3 views
0

ルートテンプレート属性からemberjsコンポーネントを作成していますが、テンプレートに表示する値を渡しています。しかし、私はオブジェクトのブラケット記法によってコンポーネントテンプレートの中でそれにアクセスすることができません。ハンドルバーテンプレートでオブジェクトのブラケット記法を使用するにはどうすればいいですか?

//route.hbs 
{{b-select 
    options=model.names 
    valueProp='name' 
}} 

モデル

import Ember from 'ember'; 

export default Ember.Route.extend({ 
    model() { 
     return Ember.RSVP.hash({ 
      names: [{name: 'abc'}, {name: 'xyz'}] 
     }); 
    } 

}); 

成分b-選択HBSファイル

<select class="form-control" multiple={{multiple}}> 
    {{#each options as |option|}} 
    <option value="{{option}}">{{option[valueProp]}}</option> 
    {{/each}} 
</select> 

私はoption.nameの代わりoption[valueProp]を使用する場合、それは完璧に動作します。どのように私は動的に選択するためにプロパティを渡すことができますか?なぜブラケット表記は

コンポーネントJSファイルを動作していない

import Ember from 'ember'; 
import fallbackIfUndefined from '../utils/computed-fallback-if-undefined'; 

export default Ember.Component.extend({ 
    multiple: fallbackIfUndefined(false), 
    options: fallbackIfUndefined(null), 
    valueProp: fallbackIfUndefined(0), 
    actions: { 

    }, 
    didInsertElement() { 
     //initialize jquery functions 
     this.$('select').selectpicker({size: 6}); 
    }, 
    willDestroyElement() { 
     //remove all events 
    } 
}); 

私は取得していますエラーが

エラーです: ... ALUE = "{{オプション:3行目でエラーを解析します}} "> {{option [valueProp]}} < -----------------------^ 'ID'、 'STRING'、 'NUMBER '、' BOOLEAN '、' UNDEFINED '、' NULL '、' DATA '、' INVALID '

答えて

4

あなたは{{get}}ヘルパーを使用することができます。

<option value="{{option}}">{{get option valueProp}}</option>

+0

ありがとうございます。それはpefect働いた – murli2308

-1
あなたはハンドル・ルックアップ・ヘルパーを使用することができます

http://handlebarsjs.com/builtin_helpers.html#lookup

はこれを試してみてください:

<option value="{{option}}">{{lookup option valueProp}}</option> 
+0

なぜ私はエラーを取得しています。 ember.debug.js:16628 Uncaught Error:アサーションに失敗しました: 'lookup'というヘルパーが見つかりませんでした – murli2308

+0

hmm ..古いバージョンのemberがあるかもしれません。ハンドルバーのルックアップヘルパーを自分で書くことができます。それは非常に簡単です。ヘルパーコードはここに記述されています:http://stackoverflow.com/questions/29829723/example-of-using-handlebars-lookup-helper。 – Raja

+0

私はember 2.4.2を使用していますが、まだそのエラーを示しています。ルックアップは控え目ですか?それのためにヘルパーを書くのは良い考えですか? – murli2308

関連する問題