敲除绑定不更新元素值

时间:2015-02-03 21:21:07

标签: javascript knockout.js

所以我在Knockout工作,我有一个包含单个observable的视图模型:

function rvwHistoryViewModel() {
    if (document.getElementById("CCHPISentence").innerHTML != "") {
        rvwHistory = ko.observable(document.getElementById("CCHPISentence").innerHTML);
    }
    else {
        rvwHistory = ko.observable("crap");
    }
}

最初在CCHPISentence.innerHTLM == ""上面的代码中,所以应用了绑定,我的元素读取"废弃它应该"。

但是,我稍后会调用相同的viewModel,此时调用CCHPISentence.innerHTLM == "some thing"。我调试并看到rvwHistory确实设置为"some thing",但屏幕上的值仍然显示为"crap"

我做错了什么?提前感谢任何可以帮助我的人,我一直在盯着这一个。

1 个答案:

答案 0 :(得分:0)

这是ViewModel的示例。它包含一个输入和一个计算的例子。



function rvwHistoryViewModel() {
  this.CCHPISentence = ko.observable("");
  this.rvwHistory = ko.computed(function() {
    if (this.CCHPISentence() == "") {
      return "crab"; // nice little animal
    } else {
      return this.CCHPISentence();
    }
  }, this);

}

ko.applyBindings(new rvwHistoryViewModel());

<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>

CCHPISentence:
<input data-bind="value:CCHPISentence" type="text"/>
<br/>rvwHistory:<span data-bind="text:rvwHistory"></span>
&#13;
&#13;
&#13;

提示,请遵循优秀的教程:http://learn.knockoutjs.com/