aurelia的价值绑定何时传播价值变化?

时间:2016-08-24 09:54:26

标签: javascript aurelia aurelia-binding dom-events

我目前有一个测试,其中我有一个value.bind="someProperty"的输入元素,它可以正常工作,并在输入字段中正确显示该属性的值。

但是,如果我要在该字段上订阅DOM input事件,并且在调用它时检查属性的值,它与DOM值不同,即使我要延迟100毫秒(通过setTimeout(checkPropertyValue, 100);)值并不总是传播到模型,所以当值从输入字段中更新时是什么时候?

==编辑==

以下是正在发生的事情的示例代码,在与某人通过对话时提出了一个好点,使用视图过滤器可能会限制value绑定,因此您不能依赖于直接更新的模型因此您可能需要使用ObserverLocator倾听模型更改。

@customAttribute('some-atribute')
export class SomeAttribute
{
    @bindable someObjectWhichUsesVM;

    constructor(element) {
        this.element = element;
    }

    attached() {
        this.element.addEventListener("input", doSomethingWithModel);
    }

    doSomethingWithModel() {
        this.someObjectWhichUsesVM.doSomething();
    }
}

因此,上面的代码将检查元素的输入更改(而不是模型绑定),然后尝试使用模型上的数据执行某些操作,这些数据不会传播。

我想我已经找到了答案,即我需要订阅模型以进行更改,并且基本上确保在运行逻辑之前已经发生了更改,但是如果有更好的方法,那我就全都听了。 / p>

0 个答案:

没有答案