Ember:在场中设置焦点的简单方法

cyc*_*arc 5 ember.js

我正在寻找一种将焦点设置为文本字段或文本区域的简单方法.我不喜欢将Jquery语法与Ember语法混合使用......我宁愿不为每个我想设置焦点的textfield或textarea创建单独的视图.

有什么建议 ?

我的textArea字段很简单:

{{view Ember.TextArea valueBinding="body" placeholder="body"}}
Run Code Online (Sandbox Code Playgroud)

谢谢马克

Dav*_*las 6

使用新的Ember CLI,您只需autofocus="autofocus"在模板*.hbs中使用它

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

  • 另一个奇怪的是,如果输入插入dom,删除,并在第二次插入时再次插入,则不会自动对焦. (3认同)

int*_*xel 5

将焦点设置为a的最简单方法TextArea如下:

App.FocusTextArea = Ember.TextArea.extend({
  didInsertElement: function() {
    this._super(...arguments);
    this.$().focus();
  }
});
Run Code Online (Sandbox Code Playgroud)

无论何时你想要这样的视图,你都可以这样使用它:

{{view App.FocusTextArea valueBinding="body" placeholder="body"}}
Run Code Online (Sandbox Code Playgroud)

我不想为我想要设置焦点的每个textfield或textarea创建单独的视图.

通过创建TextAreaEmber.TextArea您扩展的自定义视图不会在每次创建新视图时创建,您将重复使用具有所需行为的自定义视图.

希望能帮助到你.