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>

基本的に、ボタンをクリックしてテキストボックスの値をインクリメントしたいです。次の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">

他に何が欠けていますか?どんな助けでも大歓迎です

4

1 に答える 1

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/

お役に立てれば。

于 2012-05-29T21:58:52.300 に答える