Ember 中的实时操作

Live actions in Ember

我们如何在 ember 中实现实时操作而不重新加载或按下操作按钮?

例如,如果我正在填写表格以更改密码, 在确认密码输入中,我需要活泼地检查这两个密码的匹配(不按任何按钮) 这只是个案? 我该如何实施?

参见twiddle or gist。有很多不同的方法。

1).绑定一个动作到两个输入字段

oninput事件
<input value={{password2}} oninput={{action 'setPassword2' value="target.value"}} />
<input value={{passwordConfirm2}} oninput={{action 'setPasswordConfirm2' value="target.value"}} />

使用在输入时调用函数的自定义操作处理程序:

actions: {
  setPassword2(val){
    this.set('password2', val);
    this.updatePasswordsMatch2();
  },
  setPasswordConfirm2(val){
    this.set('passwordConfirm2', val);
    this.updatePasswordsMatch2();
  }
},
updatePasswordsMatch2(){
  this.set('passwordsMatch2', this.get('password2') === this.get('passwordConfirm2'));   
}

2).与上面相同,但如果您只希望事件在 blur + change

时触发,请使用 onchange

3). 2way 绑定(老派 ember 方式),计算属性同时观察密码和确认:

passwordsMatch: computed('password', 'passwordConfirm', function(){
   return this.get('password') === this.get('passwordConfirm'); 
})