我有一个名为 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'}}
你看,类型是“数字”。我的观察:当类型设置为“数字”时,Ember TextField 的行为是......:如果我输入不可解析的字符串(例如:xyz),它根本不会将输入的值分配给绑定变量(numberOfItems)。因此,numberOfItems 保持未定义。
问题是:Ember.TextField 在这种情况下不会清除该字段。因此,该字段一直显示“xyz”。
我希望它自动清除,这就是我实现 focusOut 方法的原因......我将值设置为 0。但这不是我真正想要的;0 与未定义不同。我想使用“未定义”作为“用户没有输入任何有效的东西”。0 是有效输入。
我试过: this.set('value', undefined); ...但当然它对显示没有影响(没有检测到变化;未定义->未定义)。
我也试过: this.set('value', 0); 其次是 this.set('value', undefined); .... 没运气。
您知道解决方案/正确的技术吗?
谢谢,拉卡