我希望创建一个文本字段,就像使用输入助手一样,但它的行为略有不同:在按下回车键之前,它不会更新它所绑定的属性。我扩展了组件并试图覆盖可能更新属性的函数:
InputTextSoftComponent = Ember.TextField.extend(
keyPress:->
console.log("keypress")
propertyDidChange:->
console.log('propChange')
didInsertElement:->
console.log('insert')
modelChangedValue:->
console.log('changeval')
)
该组件现在就像普通的文本字段一样,我很惊喜
{{input-text-soft id="height-input" class="position-inputs" type="text" value=controller.activeRegion.width}}
但是,我无法通过更新值目标来停止文本字段中的更改。如何防止这种情况并实现一种软绑定,以便输入只更新enter键的属性?我正在寻找特定于Ember CLI和组件使用的解决方案。
答案 0 :(得分:1)
创建不同的绑定属性。您房产的别名。将您的文本域绑定到该属性。仅在按下enter时才从别名更新不动产。伪:
{{input-text-soft id="height-input" realValueBinding="controller.activeRegion.width" value=newWidth...}}
keyPress() {
if (keyCode == xx)
this.set('realValue', this.get('newWidth'))
}