如何在ember.js模板中使用自动对焦?

Tor*_*ups 9 handlebars.js ember.js

我有一个简单的ember.js文本字段,我正在尝试添加自动对焦

{{view PersonApp.SearchField placeholder="search..." valueBinding="searchText"}}

PersonApp.SearchField = Ember.TextField.extend({

});
Run Code Online (Sandbox Code Playgroud)

我可以在javascript中添加它还是像模板本身中的属性一样简单?

psa*_*ord 29

更新:

更新版本的Ember现在支持内置,因此您不再需要重新打开TextField来添加attributeBinding.截至2014年1月(提交fdfe8495),您只需在模板中使用HTML5自动对焦属性:

{{input value=search type="text" placeholder="Search" autofocus="autofocus"}}
Run Code Online (Sandbox Code Playgroud)

这是一个简单的jsfiddle演示.


以前的方案:

您还可以重新打开TextField以允许绑定autofocus属性:

Ember.TextField.reopen({
  attributeBindings: ['autofocus']
}); 
Run Code Online (Sandbox Code Playgroud)

然后在你的模板中:

{{input value=search type="text" placeholder="Search" autofocus="autofocus"}}
Run Code Online (Sandbox Code Playgroud)


rit*_*rit 10

还可以选择在TextField上使用HTML5自动聚焦属性.

PersonApp.SearchField = Ember.TextField.extend({
    attributeBindings: ['autofocus'],
    autofocus: 'autofocus'
});
Run Code Online (Sandbox Code Playgroud)

有关自动聚焦字段的更多信息,另请参阅有关Mozilla Developer Network的文档:

  • 很好的答案,但总的来说,w3schools不是一个真正准确的来源.见http://w3fools.com/ (4认同)

Rya*_*yan 8

自动对焦意味着我们立即开始关注文本框?你想要didInsertElement那个.

didInsertElement: function() {
    this.$().focus();             
}
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/qKXJt/139/