Knockout.js 在实时仪表板上使用Signal和knockoutjs

Knockout.js 在实时仪表板上使用Signal和knockoutjs,knockout.js,signalr,Knockout.js,Signalr,我在一个项目上遇到了麻烦,我读了很多书,但我仍然难以把它整合起来 我有一个票务系统,它向更新SQL server数据库的服务器发送XML通知。我订阅数据库更改,并尝试使用SignalR和knockoutjs更新所有连接客户端的视图 我遇到的主要问题是试图更新包含票证数据表的视图模型。我对javascript不是很在行,所以我很难准确地理解我需要做哪些不同的事情。我知道我很接近,但需要一些建议 代码隐藏(在hub的单独类中) JS 最后是标记 <tbody data

我在一个项目上遇到了麻烦,我读了很多书,但我仍然难以把它整合起来

我有一个票务系统,它向更新SQL server数据库的服务器发送XML通知。我订阅数据库更改,并尝试使用SignalR和knockoutjs更新所有连接客户端的视图

我遇到的主要问题是试图更新包含票证数据表的视图模型。我对javascript不是很在行,所以我很难准确地理解我需要做哪些不同的事情。我知道我很接近,但需要一些建议

代码隐藏(在hub的单独类中)

JS

最后是标记

             <tbody data-bind="foreach: tickets">
                <tr>
                    <td data-bind="text: Message"></td>
                    <td data-bind="text: Id"></td>
                </tr>
            </tbody>

我不熟悉Signal,但您可以将hubproxy放在您的模型中:

$(function() {
    ko.applyBindings(new ViewModel());
});

var ViewModel = function () {
    var self = this;
    var hubProxy = $.connection.notif;

    self.tickets = ko.observableArray(model.tickets);

    var init = function(){
        hubProxy.server.getAllTickets().done(function (tickets) {
            self.tickets(tickets);
        });
    };

    hubProxy.client.updateTableData = function (tickets) {
        self.tickets(tickets);
    };

    $.connection.hub.start().done(init);
};

我不熟悉Signal,但您可以将hubproxy放在您的模型中:

$(function() {
    ko.applyBindings(new ViewModel());
});

var ViewModel = function () {
    var self = this;
    var hubProxy = $.connection.notif;

    self.tickets = ko.observableArray(model.tickets);

    var init = function(){
        hubProxy.server.getAllTickets().done(function (tickets) {
            self.tickets(tickets);
        });
    };

    hubProxy.client.updateTableData = function (tickets) {
        self.tickets(tickets);
    };

    $.connection.hub.start().done(init);
};

我不熟悉Signal,但您可以将hubproxy放在您的模型中:

$(function() {
    ko.applyBindings(new ViewModel());
});

var ViewModel = function () {
    var self = this;
    var hubProxy = $.connection.notif;

    self.tickets = ko.observableArray(model.tickets);

    var init = function(){
        hubProxy.server.getAllTickets().done(function (tickets) {
            self.tickets(tickets);
        });
    };

    hubProxy.client.updateTableData = function (tickets) {
        self.tickets(tickets);
    };

    $.connection.hub.start().done(init);
};

我不熟悉Signal,但您可以将hubproxy放在您的模型中:

$(function() {
    ko.applyBindings(new ViewModel());
});

var ViewModel = function () {
    var self = this;
    var hubProxy = $.connection.notif;

    self.tickets = ko.observableArray(model.tickets);

    var init = function(){
        hubProxy.server.getAllTickets().done(function (tickets) {
            self.tickets(tickets);
        });
    };

    hubProxy.client.updateTableData = function (tickets) {
        self.tickets(tickets);
    };

    $.connection.hub.start().done(init);
};

我强烈建议不要序列化数据表。如果需要在后端使用它们,请在调用clientsI强烈建议序列化数据表之前,将它们映射到中心中的POCO。如果需要在后端使用它们,请在调用clientsI强烈建议序列化数据表之前,将它们映射到中心中的POCO。如果需要在后端使用它们,请在调用clientsI强烈建议序列化数据表之前,将它们映射到中心中的POCO。如果需要在后端使用它们,请在调用客户端之前将它们映射到中心中的POCO