我正在创建一个使用2个局部视图的控制台视图。每个局部视图都封装一种数据并使用它自己的SignalR数据。
如果我在主视图中只包含一个局部视图,则局部视图可以完美地工作。我所包含的观点并不重要。
如果我同时包含两者,则只刷新第一个局部视图。不调用第二个视图中心功能。
作为以下简单结构附加到集线器的js函数,它在局部视图中定义:
$(function () {
//same for both views
var hub = $.connection.someHub;
//Each view use a diferent function
hub.client.partialupdateX = function (data) {
// Add the message to the page.
tabledata = JSON.parse(data);
table.ajax.reload();
};
$.connection.hub.start();
});
两个视图的集线器相同,但每个视图都附加到不同的功能。 在服务器端,两个功能都在同一个周期内触发。
我是否必须打破隔离并将集线器js功能放在顶级页面? 我在这里错过了什么吗?
答案 0 :(得分:1)
结果非常简单。我只能启动一次集线器,所以在包含两个部分视图后,我将以下功能放在主页面中。
$(function () {
$.connection.hub.start();
});
所有集线器功能都可以在部分视图中绑定。