これは「先行入力」の状況に固有であり、私の例には静的なコンテンツが含まれている可能性がありますが、実際には、これは「データソース」のブートストラップ使用に適用されます。いつか私が成長したときに、先行入力の実装に動的コンテンツを使用したいので、今のところバインディング方法を試しています:
Ember.TextField.reopen({
//add some bootstrap specific stuff
attributeBindings: ['data-provide', 'data-items', 'dataSourceBinding:data-source'],
'dataSourceBinding': Ember.Binding.oneWay('App.AddStoreTemplateController.statesArray')
});
テンプレートを接続するconnectOutletsを備えたルーターがあります。
{{view Ember.TextField elementId="state" placeholder="NY/New York" valueBinding="state" data-provide="typeahead" data-items="4" data-source="App.router.addStoreTemplateController.statesArray"}}
私のコントローラー:
AddStoreTemplateController: Ember.ArrayController.extend({
statesArray: ['Alabama', 'Washington']
}),
HTMLでレンダリングされると私が期待するもの:
<input id="state" class="ember-view ember-text-field" placeholder="NY/New York" type="text" data-provide="typeahead" data-items="4" data-source="['Alabama', 'Washington']">
実際にHTMLでレンダリングされるもの:
<input id="state" class="ember-view ember-text-field" placeholder="NY/New York" type="text" data-provide="typeahead" data-items="4" data-source="App.router.addStoreTemplateController.statesArray">
Typeaheadドキュメント http://twitter.github.com/bootstrap/javascript.html#typeahead
本当にありがとう。私はEmberJSを本当に楽しんでいます!!