如何卸载实用程序模块(与jQuery.sap.require相反)

时间:2015-03-26 13:00:56

标签: sapui5

我在Fiori Launchpad中卸载custom utility模块时遇到问题。我想这样做来清理资源。

模块定义:

jQuery.sap.declare("sap.ui.demo.tdg.util.Formatter");    
  sap.ui.demo.tdg.util.Formatter = {
    methodCall: function() {
...

模块在Component init中加载:

myComponentPath.Component.prototype.init = function(){    
  jQuery.sap.require("sap.ui.demo.tdg.util.Formatter");
  sap.ui.demo.tdg.util.Formatter.methodCall(); <- error happens here when opening 2nd time

我尝试在Component destroy 上将模块设置为 null 但是我在sap.ui.demo.tdg.util上得到 undefined 。在Fiori Launchpad第二次打开应用程序时的格式:

myComponentPath.Component.prototype.destroy = function(){
  sap.ui.demo.tdg.util.Formatter = null;

或者我只是偏执,不应该关心正确清理的资源。 :)

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以尝试使用:

jQuery.sap.unloadResource("some/util/Formatter.js", false, true, true);

修改 jQuery.sap.require加载资源并将其保存到名为mModules的内部映射中。使用unloadResource,您可以从此映射中删除entrie。路径背后的参数描述了如何处理像全局变量这样的依赖关系。

但您可以自己阅读文档here