使用applyBindingsToNode动态绑定元素不响应更改

pur*_*uri 10 knockout.js

在这个例子中,我有一个动态绑定输入和div到相同的属性.但是在改变输入中的文本时,更改不会反映在div元素中.

http://jsfiddle.net/rpuri/Bcps5/

ko.applyBindingsToNode(document.getElementById('input-health'), {
    value: vm.status(),
    valueUpdate: 'afterkeydown'
});
Run Code Online (Sandbox Code Playgroud)

声明性绑定对我来说不是一个选项,因为我需要绑定到部分视图中的共享元素(ASP.NET MVC).

谢谢

Ben*_*aum 12

您绑定到observable的值而不是observable本身.

尝试:

ko.applyBindingsToNode(document.getElementById('health'), {
    text: vm.status, // <- not invoking status, binding to the observable itself.
    valueUpdate: 'keydown'
});

ko.applyBindingsToNode(document.getElementById('input-health'), {
    value: vm.status,  
    valueUpdate: 'keydown'
});
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/hwQsm/