我在这里创建了一个Plunker: http://plnkr.co/edit/EWh3DI8fkckU9mKGqWhS
我要么很累,要么就是看不到发生了什么。此代码显示" Hello World"在VS 2013的文本框中,但由于某种原因,jQuery似乎并没有在Plunker中工作。我是Plunker的新手,这不是我的问题。
我的问题是如何使用Knockout observable清除文本框按钮以清除文本框中的文本。我使用Revealing Pattern创建了一个简单的模型,然后将文本框中的值定义为可观察的(使用data-bind和applybindings)。但是在KO绑定之后设置vm公共变量并不会更改文本框中的值。
我错过了什么?
答案 0 :(得分:1)
您的apply bindings函数需要一个结束括号
$(function () {
ko.applyBindings(vm);
}) <--here
essayText应该是可观察的
var essayText = ko.observable("Hello World");
因此,应该按照可观察的方式修改essayText
function cleartb()
{
vm.essayText('');
return;
}
答案 1 :(得分:0)
我喜欢plunker,但对于这些快速帮助问题,JSFiddle与cdnjs的外部资源更快(IMO)。无论如何,这是一个不同的方法和here's a JSFiddle
var ViewModel = function(){
var _self = this;
_self.EssayText = ko.observable("Hello World");
_self.ClearTextBox = function(){
_self.EssayText("");
};
};
ko.applyBindings(new ViewModel());
标记
<div class="container">
<div class="row">
<div class="col-md-2">Enter Text Here (Starting Value Should Be 'Hello World'):</div>
<div class="col-md-10">
<textarea id="TextEditor" data-bind="value: EssayText"></textarea>
</div>
</div>
<div class="row">
<div class="col-md-12">
<button class="btn btn-info" data-bind="click: ClearTextBox">Clear Text Box</button>
</div>
</div>
</div>