2

私はこれを作ろうとしています

<input type="text" {{bindAttr value="controller.term"}}>

しかし、正しく動作しません。変更はコントローラーからのみ機能します。私は以下を使用することを余儀なくされています

{{view Em.TextField valueBinding="controller.term"}}

前のスニペットを使用せずにこれを作成する方法はありますか?

4

2 に答える 2

2

私は興味があります-なぜEmber.TextFieldを使いたくないのですか?

ビューは値が変更されたことを認識しないため、テンプレート{{bindAttr value="controller.term"}}はビューからコントローラーに変更を伝播しません。、、イベントを自分で処理changeし、それに応じてデータを更新する必要があります。何を推測しますか?Ember.TextFieldを使用すると、これらすべてが無料で入手できます。keyUpfocusOut

それでも最初の方法を使用したい場合は、Ember.TextSupportをご覧ください。このミックスインにより、ビューからコントローラーへのデータフローが可能になります。

于 2012-10-12T16:30:27.683 に答える
2

Ember.TextField を拡張して、やりたいことを実行してみませんか?

何をしようとしているのか正確に教えてください。この方法で解決策を見つけることができると思います。詳細がわかったら回答を編集しますが、今のところ:

Ember.TextField の拡張

入力に ​​maxlength とプレースホルダーを入れたいとしましょう。

App.MyTextField = Ember.TextField.extend({
  maxlength: 20,
  placeholder: 'Some placeholder text',
  attributeBindings: ['maxlength', 'placeholder']
});

次に、これをテンプレートに入れることができます:

{{view App.MyTextField valueBinding="controller.term"}}
于 2012-10-12T16:25:34.733 に答える