3

このコードを試しましたが、正しく動作しません。私のコードは以下です

<link href="~/Content/knocktest.css" rel="stylesheet" />
    <script src="~/Scripts/knockout-2.3.0.js" type="text/javascript"></script>

<script type="text/javascript">
        $(document).ready(function () {
            var ViewModel = function (first, last) {

                this.firstName = ko.observable(first);
                this.lastName = ko.observable(last);

                this.fullName = ko.computed(function () {                  

                    return this.firstName() + " " + this.lastName();
                }, this);
            };
            ko.applyBindings(new ViewModel("Planet", "Earth"));
        });
    </script>

以下の私のhtmlコード

<p>First name: <input data-bind="value: firstName" /></p>
<p>Last name: <input data-bind="value: lastName" /></p>

4

1 に答える 1

3

コードにエラーがないため、実際に欠けているのは、使用しているためjQueryライブラリへの参照だけです。

$(document).ready(function () {
    // rest of your code here
});

jQuery を含めない場合は、$(document).ready()コードを削除して、本文内のすべての html 要素の後に JavaScript を配置してください。

<p>First name: <input data-bind="value: firstName" /></p>
<p>Last name: <input data-bind="value: lastName" /></p>

<span data-bind="text: firstName"></span>
<span data-bind="text: lastName"></span>

<script src="http://cdnjs.cloudflare.com/ajax/libs/knockout/2.2.1/knockout-min.js"> </script>
<script>

    var ViewModel = function (first, last) {

        this.firstName = ko.observable(first);
        this.lastName = ko.observable(last);

        this.fullName = ko.computed(function () {
            return this.firstName() + " " + this.lastName();
        }, this);

    };
    ko.applyBindings(new ViewModel("Planet", "Earth"));

</script>

jsbin でコードのこのデモをチェックしてください

于 2013-08-23T20:43:02.133 に答える