淘汰赛js没有从视图模型更新

时间:2015-02-02 21:24:17

标签: javascript jquery model-view-controller knockout.js

所以我在视图中有以下textarea,我试图通过敲除绑定进行更新。

以下是View中的代码:

<textarea disabled id="CCHPISentence" style="width:99.7%; height:75px; resize: none; font-family:Verdana; overflow: auto;" data-bind="text: fullSymptomTextObservable"> </textarea>

这是应用绑定的Jquery函数,我想知道我的问题是否在这里:

   $(function () {
    ko.applyBindings(symptomTextViewModel, document.getElementById("CCHPISentence"))
})

这是我的ViewModel:

function symptomTextViewModel(fullText) {
if (fullText === undefined)
{ fullText = ""}
this.fullSymptomTextObservable = ko.observable(fullText.toString())

}

这是来自调用我的ViewModel的js函数的剪辑。我在这个第二个js函数中构建了fullText变量:

    //FINAL PARAGRAPH KNOCKOUT VM MAPPING
fullText = sentence1 + sentence2 + sentence3 + sentence4 + sentence5
var symptSentViewModel = new symptomTextViewModel(fullText)
symptomTextViewModel(fullText);

非常感谢任何提前帮助我的人。我觉得我错过了一些愚蠢的事情,我已经尝试过这种方式,我能想到没有运气。

2 个答案:

答案 0 :(得分:0)

fullSymptomTextObservable成为pureComputed可观察对象会更容易。这样,随着各种句子的改变,完整的句子也将如此。这样你就可以利用knockoutjs。

function SymptomTextViewModel(fullText) {
    var self = this;
    if (fullText === undefined) {
      fullText = ""
    }
    self.fullSymptomTextObservable = ko.observable(fullText.toString())
}

var vm = new SymptomTextViewModel('This is a test paragraph. Watch for the alert();');

ko.applyBindings(vm,document.getElementById("CCHPISentence"));

alert("about to use the vm variable to access the text.");

vm.fullSymptomTextObservable('Changing it to something else');


alert("about to use the ko.dataFor function");

var testVm = ko.dataFor(document.getElementById("CCHPISentence"));
testVm.fullSymptomTextObservable("Maybe this would be better suited to what you need.");
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>


<textarea disabled id="CCHPISentence" style="width:99.7%; height:75px; resize: none; font-family:Verdana; overflow: auto;" data-bind="text: fullSymptomTextObservable"></textarea>

答案 1 :(得分:0)

首先,我会修复代码中所有缺少的分号。然后检查视图模型功能中“this”的范围是否正确。来自浏览器控制台的一些信息也会有所帮助。检查是否没有任何错误,淘汰赛会抛出。