Ember 中的实时操作
Live actions in Ember
我们如何在 ember 中实现实时操作而不重新加载或按下操作按钮?
例如,如果我正在填写表格以更改密码,
在确认密码输入中,我需要活泼地检查这两个密码的匹配(不按任何按钮)
这只是个案?
我该如何实施?
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');
})
我们如何在 ember 中实现实时操作而不重新加载或按下操作按钮?
例如,如果我正在填写表格以更改密码, 在确认密码输入中,我需要活泼地检查这两个密码的匹配(不按任何按钮) 这只是个案? 我该如何实施?
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');
})