如何应用具有不同文档根目录的绑定

时间:2014-02-14 19:38:21

标签: data-binding knockout.js document-root

您好我有以下HTML:

<div id="div1">
   <input id="input1" data-bind="value: inputIn, valueUpdate: 'afterKeydown'" >
   // ... more stuff between
</div>

<div id="div2">
   <input id="input2" data-bind="value: inputOut">
   // .... more stuff between
</div>

我的模特是这样的:

function MyModel() {
     "use strict";
      this.inputIn = ko.observable("");
      this.inputOut = ko.computed(function() {
           return transformOutput(this.inputIn());
      }
}

应用绑定:

var myModel = new MyModel();
ko.applyBindings(model, document.getElementById("div2"));
ko.applyBindings(model, document.getElementById("div1"));

我希望输入1的更改能够影响输入2.出了什么问题?他们是在不改变html的情况下解决这个问题。该元素位于两个不同的div中,我希望敲除绑定适用于跨越根域。

1 个答案:

答案 0 :(得分:0)

你的问题不在于你如何约束它(虽然我不认为这是值得的麻烦)。您的问题是this不是您认为computed属性中的window(实际上是function MyModel() { var self = this; this.inputIn = ko.observable(""); this.inputOut = ko.computed(function () { return transformOutput(self.inputIn()); }); } )。

试试这个:

{{1}}

这是一个简单的fiddle