页面上有几个模块:
// module 1
require(['signalr'], function(s) {
s.subscribe('myhub1', function () { /* some code */ });
});
// module 2
require(['signalr'], function(s) {
s.subscribe('myhub2', function () { /* some code 2 */ });
});
并且有一个方法应该在调用所有模块之后调用(所有订阅都完成):
require(['signalr'], fuinction (s) { s.connect(); });
可能的解决方案是定义模块并像这样编写:
// module 1
define('module 1', ['signalr'], function(s) {
s.subscribe('myhub1', function () { /* some code */ });
});
// module 2
define('module 2', ['signalr'], function(s) {
s.subscribe('myhub2', function () { /* some code 2 */ });
});
require(['signalr', 'module 1', 'module 2'], fuinction (s) { s.connect(); });
但问题是不同的页面有不同的模块,比如:
page1.cshtml:模块 1
page2.cshtml:模块 1、模块 2
所以我不能写: require(['signalr', 'module 1', 'module 2'], fuinction (s) { s.connect(); }); 因为模块 2 可能未在 page2.cshtml 上定义。