我正在尝试将 SignalR (1.3) 与 RequireJS 一起使用。
我的 requireJs 垫片包含:
"signalr.core": {
deps: ["jquery"],
exports: "$.connection"
},
"signalr.hubs": {
deps: ["signalr.core"],
exports: "$.connection"
},
我有一个模块:
define(["jquery", "signalr.hubs"], function ($) {
var Test = {};
Test.Init = function () {
//Code init
$.connection.myHub.client.ClientMethod = function () { console.log("Hello"); };
};
Test.Start = function () {
return $.connection.hubs.start();
};
return Test;
});
我在代码中调用了我的模块两次,第一次是 init,第二次是 start:
require(["jquery", "myModule"], function ($, Test) {
Test.Init();
});
require(["jquery", "myModule"], function ($, Test) {
Test.Start().done(function () {
$(document.body).append($("<p />").text("Connected"));
});
});
但是当我调用该Test.Start()
方法时,$.connection.myHub.client.ClientMethod
值为undefined
.
声明我的 shim 以避免丢失集线器的客户端方法的正确方法是什么?
谢谢。