0

我在这里创建了一个 Plunker:http: //plnkr.co/edit/EWh3DI8fkckU9mKGqWhS

我要么很累,要么就是看不到发生了什么。此代码在 VS 2013 的文本框中显示“Hello World”,但由于某种原因,jQuery 似乎无法在 Plunker 中运行。我是 Plunker 的新手,这不是我的问题。

我的问题是如何让 Clear Text Box 按钮使用 Knockout observable 清除文本框中的文本。我使用显示模式创建了一个简单的模型,然后将文本框中的值定义为可观察的(使用数据绑定和应用绑定)。但是在 KO 绑定之后设置 vm 公共变量不会改变文本框中的值。

我错过了什么?

4

2 回答 2

1

您的应用绑定函数需要一个结束括号

$(function () {  
    ko.applyBindings(vm);
  }) <--here

文章文本应该是可观察的

var essayText = ko.observable("Hello World");

因此,essayText 应该按照 observables 的修改方式进行修改

function cleartb()
  {
    vm.essayText('');
    return;
  }
于 2014-04-02T15:32:29.710 回答
0

我喜欢 plunker,但对于这些快速帮助问题,JSFiddle with cdnjs for external resources 更快(IMO)。无论如何,这是一种不同的方法,这是一个 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>
于 2014-04-02T15:39:01.537 回答