0

Liferay 中的portlet 可以每页添加一次,也可以每页添加多次,当portlet 可以多次添加时,它也称为可实例化的Portlet。

在这样一个可实例化的 Portlet 中,我需要一个 Portlet 范围内的全局 JS 变量。目前我的jsp文件中有JS代码(丑陋,我知道^^)并在我的变量名中使用portlet命名空间,例如:

var <portlet:namespace/>oldUsedCPUsValue = 0;

但是现在我想将我所有的 JS 代码放入main.js文件中,我显然不能使用 portlet 命名空间。我怎么能这样做?一个全局数组和作为键的 portlet 命名空间?

4

1 回答 1

0

Javascript 不是我的专长,但我只会将代码放入 main.js 中(您可以自己命名它,而不关心它是否会被另一个 portlet 中的相同代码重载(这是我的 javascript-special-knowledge:我没有'甚至不检查 main.js 是否会被包含两次——如果你检查它,它甚至可能只被包含一次。

然后从 jsp 页面调用/初始化它,您可以在其中使用命名空间(如果您有要求它们是完全全局的。

另一种方法(如果你不关心实际的命名空间而只需要一个命名空间)是使用 AlloyUI(YUI 的扩展),命名空间是免费的:

AUI().use('node', 'module2', 'foo', function (A) {
  // your code and 'global' variables go here.

  A.foo.bar();

  // the namespace ends here
});
于 2012-09-12T21:54:52.613 回答