我想写一个扩展Ember输入作为数字输入的新组件。当这个类的用户将它们的值绑定到value
属性数字输入组件时,它们应该只能得到一个数(或NaN表示无效值)。在Ember Input中,值有一个属性绑定。如何覆盖ember.js中的父属性? (具体数字输入的行为)
我定义上号输入分量名为“价值”的一个计算属性如下:
value:Ember.computed({
get:function(key){
let htmlValue = this.get('htmlvalue');
return this.sanitize(htmlValue);
},
set:function (key, htmlvalue){
this.set('htmlvalue', htmlvalue);
if(this.get('onUpdate')) {
this.get('onUpdate')(this.sanitize(htmlvalue));
}
return this.sanitize(htmlvalue);
}
}),
它工作正常,但它不是在双向绑定工作。 (其实这是OK的DDAU但应该在双向绑定工作。)
注: 我知道,我可以提供其他属性,如“numericValue”(如图here),以便用户可以将它们的值绑定到“numericValue”。但我不想混淆值和numericValue的用户。
UPDATE:
打字时到现场,任何错字应不会重置价值。例如,当用户试图写入“123456789”,并意外按“12345678p”不应导致输入重置。当值无效时,显示错误消息或重置值都不是组件的责任。
有一个小提琴,你可以看到:Ember-Twiddle
但在字段中输入时闪烁。我会更新我的问题。 – ykaragol