我有一个javascript文件如下
(function (rpc) {
rpc.loadHomeBanner = rpc_loadHomeBanner;
function rpc_loadHomeBanner(){
// AN is used by Sencha Animator as an Animation variable
rpc.AN ={};
rpc.AN.Controller = {
setConfig: function(configData) {
// update config crap
}
};
var configData = {
// config crap
};
rpc.AN.Controller.setConfig(configData);
}
})(rpc);
现在在第一次加载页面时,我打电话给
rpc.loadHomeBanner();
它就像我需要它一样激发。
问题是我有一个handleOrientationChange
方法需要从命名空间外部更新配置(我不想因为开销而触发loadHomeBanner方法)。
handleOrientationChange: function(){
// Updating the config for the animation to ensure appropriate width.
var configData = {
// config crap
};
rpc.AN.Controller.setConfig(configData);
}
如何从闭包范围之外调用rpc.AN.controller.setConfig
?
答案 0 :(得分:1)
考虑到您已将rpc
对象传递到该代码模块中,它应该已经可以访问。
答案 1 :(得分:0)
您应该创建factory
。
var createRPC = function( rpc ) {
rpc.AN = {
Controller: {
setConfig: function( configData ) {
}
}
};
return {
updateConfig: function( configData ) {
rpc.AN.Controller.setConfig( configData );
};
};
};
然后像
一样使用它var rpc = createRPC({});
//handle orientation change
rpc.updateConfig({
some: 'data'
});