我已经下载了 SignalR Sample并对其进行了测试。它就像一个魅力。出于测试目的,我使用单页模板创建了一个新的 mvc 4 应用程序,并在示例中添加了一个包含 StockTicker.html html 的部分视图。我将此部分视图动态加载为 jquery ui 选项卡的选项卡之一。我也添加了其他必需的文件。
当我调试应用程序时,我看到可以在 SignalR.StockTicker.js 文件中找到的以下脚本在视图加载之前工作。
$.connection.hub.start()
.pipe(init)
.pipe(function () {
return ticker.server.getMarketState();
})
.done(function (state) {
if (state === 'Open') {
ticker.client.marketOpened();
} else {
ticker.client.marketClosed();
}
// Wire up the buttons
$("#open").click(function () {
ticker.server.openMarket();
});
$("#close").click(function () {
ticker.server.closeMarket();
});
$("#reset").click(function () {
ticker.server.reset();
});
});
所以函数 init 不能做它必须做的 dom 操作。
function init() {
return ticker.server.getAllStocks().done(function (stocks) {
$stockTableBody.empty();
$stockTickerUl.empty();
$.each(stocks, function () {
var stock = formatStock(this);
$stockTableBody.append(rowTemplate.supplant(stock));
$stockTickerUl.append(liTemplate.supplant(stock));
});
});
}
我必须做什么才能使我的代码正常工作?在这里你可以找到我的测试项目。
提前致谢,