0

我正在尝试通过编写一个小应用程序来学习淘汰赛。我的代码非常简单。我可能犯了一个小错误,所以我没有显示任何结果。

下面是代码

索引.cshtml

    <div>
    <ul data-bind="foreach:list">
        <li>
            <span data-bind="text:name"></span>
        </li>
    </ul>
</div>

<script src="~/Scripts/jquery-1.7.1.min.js" type="text/javascript"></script>
<script src="~/Scripts/knockout-2.1.0.js" type="text/javascript"></script>
<script src="~/Content/MyScripts/PracticeScript.js" type="text/javascript"></script>

练习脚本.js

    $(function () {
    var data = [
    { name: "microsoft" },
    { name: "google" },
    { name: "facebook" },
    { name: "twitter" },
    { name: "Apple" }
    ];

    var viewModel = {
        item: ko.observable(""),
        list: ko.observableArray(data),
        addNewItem: function () {
           this.list.push(this.item());
        }
    };
    ko.applyBindings(this.viewModel);
});
4

2 回答 2

1

在您的示例中,您通过了this.viewModel,但viewModel对象不属于 this..

所以基本上你是undefined作为你的 viewModel 而不是实际的对象传递的。

演示

于 2013-10-30T12:23:23.793 回答
1

this您的ko.applyBindings

ko.applyBindings(viewModel);

在这里提琴

于 2013-10-30T12:25:41.150 回答