3

我在 Ember 中有一个简单的表单,它提交到服务器并返回响应。如果响应失败,我想重新关注输入字段。有没有办法使用值绑定访问我的控制器中的字段?

这里以我的 jsbin 为例:

http://jsbin.com/umodir/1/edit

4

1 回答 1

5

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"}},当控制器的“错误”属性发生变化时,它会自动聚焦。

于 2013-07-18T14:39:12.467 回答