我在 Ember 中有一个简单的表单,它提交到服务器并返回响应。如果响应失败,我想重新关注输入字段。有没有办法使用值绑定访问我的控制器中的字段?
这里以我的 jsbin 为例:
我在 Ember 中有一个简单的表单,它提交到服务器并返回响应。如果响应失败,我想重新关注输入字段。有没有办法使用值绑定访问我的控制器中的字段?
这里以我的 jsbin 为例:
http://jsbin.com/efatut/2/edit
你的服务器应该返回一些设置你可以观察到的控制器属性的东西。我把它做得很简单,称之为“错误”。
var App = Ember.Application.create();
App.ApplicationController = Ember.ObjectController.extend({
error: false,
submit: function() {
alert('I want to set a focus on the email input field now...');
this.set('error', true);
}
});
App.ApplicationView = Ember.View.Extend({
focusEmail: function() {
if (this.get('controller.error')) {
this.$('input[type=text]').focus();
}
}.observes('controller.error')
});
如果你想变得非常花哨,你可以使用 Ember.Component {{eb-input focuson="error"}}
,当控制器的“错误”属性发生变化时,它会自动聚焦。