2016-04-05 12 views
0

コンポーネント内の入力値にアクセスする際に問題が発生しています。私はテンプレートで動的に値バインディングを作成し、this.controller.get( "pst" + id)を使用してconponent.jsファイルにアクセスしようとしていますが、結果は不十分です。エンバー2.2emberでの動的入力値へのアクセス#各ブロック内の各ブロック

{{#each post in |pst idx|}} 
    {{input value=(concat 'pst' idx)}} 
{{/each}} 
+1

エンバーバージョン? '{{#each post as | pst idx |}}' – AcidBurn

+0

は、値がバインドされる変数の作成に問題があるようです。 concatヘルパー関数は文字列を作成しますが、動的に作成された文字列にthis.get.controller( "..")を入力すると、入力ボックスの値が返されません(未定義が返されます) – goofiw

+1

おそらくconcat: '(get(concat" pst "idx))'と一緒に 'get 'ヘルパーを実行します。 – locks

答えて

0

まあ、it works as expectedを使用して、なぜあなたはこれを行うにはしたいですか?

アーカイブの内容を説明してください

そして明らかになるように、getヘルパーで生成される値は不変です。

{{input value=pst}}のような理由はありませんか? これはおそらくオプションではない場合は、JSで配列を作成し、それをハンドルバーで使用する必要があります。

0

component.jsファイルに 'post'変数をラップする計算プロパティを定義します。そのラッパーを繰り返し処理します。私はこれが動的な価値を生み出す強力な方法だと思います。

あなたのテンプレート:

{{#each postWrappers as postWrapper}} 
    {{input value=postWrapper.value}} 
{{/each}} 

あなたcomponent.js:

postWrappers : Ember.computed('post', function() { 
    //your concat code 
}); 
関連する問題