Ember.js EmberJS/TextField/focusOut/type number/invalidate/clear
我有一个名为bootstrapText的自定义视图,如下所示:Ember.js EmberJS/TextField/focusOut/type number/invalidate/clear,ember.js,view,textfield,focusout,Ember.js,View,Textfield,Focusout,我有一个名为bootstrapText的自定义视图,如下所示: import Ember from 'ember'; export default Ember.TextField.extend({ classNames: ['form-control', 'input-md'], attributeBindings: ['required'], required: false, focusOut: function() { console.log('focusOut')
import Ember from 'ember';
export default Ember.TextField.extend({
classNames: ['form-control', 'input-md'],
attributeBindings: ['required'],
required: false,
focusOut: function() {
console.log('focusOut');
if (Ember.isEmpty(this.get('value'))) {
this.set('value', 0);
}
}
});
我以这种方式使用模板中的:
{{view 'bootstrapText' value=numbeOfItems type='number'}}
你看,类型是“数字”。我的观察:当type设置为'number'时,Ember TextField的行为是…:如果我输入不可解析的字符串(例如:xyz),它就不会将输入的值分配给绑定变量(numberOfItems)。因此,numberOfItems保持未定义状态
问题是:在这种情况下,Ember.TextField不会清除该字段。因此,字段一直显示“xyz”
我希望它被自动清除,这就是为什么我要实现focusOut方法。。。其中,我将值设置为0。但那不是我真正想要的;0与未定义的不同。我想使用“未定义”作为“用户未输入任何有效内容”。0是有效的输入
我试过:this.set('value',未定义)。。。但当然它对显示没有影响(未检测到任何更改;未定义->未定义)
我也尝试过:this.set('value',0);后跟此.set('value',未定义)。。。。不走运
你知道这方面的解决方案/正确技术吗
谢谢,
拉卡好的
所以我使用jQuery:this.$().val(未定义)
而不是这个。set('value',0)
这就解决了问题。好的
所以我使用jQuery:this.$().val(未定义)
而不是这个。set('value',0)
这就解决了问题