虽然这可能特定于“提前输入”情况,并且我的示例具有静态内容,但实际上这将适用于“数据源”的任何引导程序使用。我希望有一天我长大后使用动态内容来实现我的预输入,所以我现在正在尝试绑定方式:
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!