新秀首发淘汰赛问题

时间:2012-05-29 21:20:11

标签: knockout.js knockout-2.0

我刚开始阅读,并通过一些知识教程,非常喜欢它,但不能自己做一个简单的样本。这是HTML代码

<input id="Button2" type="button" value="+" data-bind="click:increment" />
<input id="Text1" type="text" data-bind="text:foo" />

和js代码:

<script type="text/javascript">
    function AppViewModel() {
        this.foo = ko.observable('0');
        this.increment = function () {
            alert(foo);
            foo += 1;
        };
    }
    ko.applyBindings(new AppViewModel());


</script>

基本上我希望jsut通过单击按钮来增加文本框值。我还在头文件中包含了以下js文件:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
    <script src="Scripts/knockout-2.1.0.debug.js" type="text/javascript">

我还缺少什么?任何帮助将不胜感激

1 个答案:

答案 0 :(得分:1)

您正在输入上使用文本绑定。设置输入的文本没有任何明显的作用。

您需要使用值绑定。像这样。

<input id="Button2" type="button" value="+" data-bind="click:increment" />
<input id="Text1" type="text" data-bind="value:foo" />

您还需要通过调用observable函数来分配foo元素。

function AppViewModel() {
    var self = this;
    this.foo = ko.observable(0);
    this.increment = function () {
        self.foo(self.foo() + 1);
    };
}

http://jsfiddle.net/madcapnmckay/wdVYe/

希望这有帮助。