下面的代码不起作用。当我尝试使用这个模块时,它没有这些方法。看起来我回来了错误的对象?
define([
'jquery'
], function($ ){
var o = $({});
$.subscribe = function() {
o.on.apply(o, arguments);
};
$.unsubscribe = function() {
o.off.apply(o, arguments);
};
$.publish = function() {
o.trigger.apply(o, arguments);
};
return o;
});
答案 0 :(得分:2)
您可能应该return $
(jQuery对象),因为您要使用附加到它的方法,如下所示:
define(['pubsub'], function(pubSub) {
pubSub.subscribe('test', function(ev) {});
});
使用您的解决方案,您必须这样做:
define(['jquery', 'pubsub'], function($, o) {
$.subscribe('test', function(ev) {});
});
答案 1 :(得分:1)
解决了这个问题,我怀疑是我正在返回错误的对象。我需要返回jQuery对象。以下代码有效:
define([
'jquery'
], function($ ){
var o = $({});
$.subscribe = function() {
o.on.apply(o, arguments);
};
$.unsubscribe = function() {
o.off.apply(o, arguments);
};
$.publish = function() {
o.trigger.apply(o, arguments);
};
return $;
});