Ember.js EmberJS/TextField/focusOut/type number/invalidate/clear

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')

我有一个名为bootstrapText的自定义视图,如下所示:

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)

这就解决了问题