Jquery 使用knockout js进行多个服务器调用

Jquery 使用knockout js进行多个服务器调用,jquery,data-binding,knockout-3.0,Jquery,Data Binding,Knockout 3.0,我正在学习Knockout,我想对不同的URL进行多个服务器调用。我不太了解Knockout,但我知道您不能,也不应该多次使用applyBinding,因此我有以下几点: <h2 data-bind="text: data2().user, valueUpdate: 'afterkeydown'">User</h2> <h2 data-bind="text: data2().id">ID</h2> <input type="text" dat

我正在学习Knockout,我想对不同的URL进行多个服务器调用。我不太了解Knockout,但我知道您不能,也不应该多次使用applyBinding,因此我有以下几点:

<h2 data-bind="text: data2().user, valueUpdate: 'afterkeydown'">User</h2>
<h2 data-bind="text: data2().id">ID</h2>
<input type="text" data-bind="value: user, valueUpdate: 'afterkeydown'"               placeholder="text goes here" />

<div data-bind="foreach: data1()">
    <div data-bind="text: name"></div>
    <div data-bind="text: count"></div>
</div>


<script src="~/Scripts/knockout-3.1.0.js"></script>
    <script>
        var viewModel = function () {
            var self = this;
            self.data1 = $.getJSON('http://localhost:57635/api/Stats/GetAllStats', function (data) {
                name: data.Name;
                count: data.Count
            });
            self.data2 = $.getJSON('http://localhost:57635/api/Stats/GetItem', function        (data) {
                user: ko.observable(data.ItemName);
                id: data.Id
            });
        };
        ko.applyBindings(viewModel)         
    </script>
问候


James

关于不在同一DOM元素上多次使用applyBinding的说法是正确的。如果您这样做,它将抛出异常

至于无法处理绑定的。。当您看到错误消息时,它告诉您正在将data2(一个对象)作为函数处理。 原因是data2是$.getJSON函数的返回值,它是一个对象。如果你不把它定义为可观察的,它也是不可观察的

因此,请尝试删除at:User。改用这个:User。 我希望这有帮助

Uncaught TypeError: Unable to process binding "text: function (){return data2().user }"
Message: object is not a function