所以我在视图中有以下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);
非常感谢任何提前帮助我的人。我觉得我错过了一些愚蠢的事情,我已经尝试过这种方式,我能想到没有运气。
答案 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”的范围是否正确。来自浏览器控制台的一些信息也会有所帮助。检查是否没有任何错误,淘汰赛会抛出。