在CQ5中为Sidekick和Insert对话框动态定义组件列表

时间:2013-10-19 14:23:29

标签: extjs event-handling cq5 aem

我正在尝试根据用户的权限修改sidekick中显示的组件列表。 我按照here的解释来尝试。

我想知道的是如何发回作为参数接收的修改后的允许数组,因为我对数组所做的修改似乎都在本地范围内。对于例如如果我希望允许的组件只包含默认列表组件,我会这样做。

function MyHandler(cell, allowed, componentList) {
    allowed = [];
    allowed.push("/libs/foundation/components/list");
}

但是一旦控件返回到触发此事件的函数,这些更改就不可见了。我应该返回数组还是什么?你能解释我在这里遗失的东西吗?

1 个答案:

答案 0 :(得分:0)

确定。终于找到了问题。我想清除传递给我的处理程序的现有组件列表,我使用了allowed = [];

这删除了对允许的数组的所有现有引用。 (更多关于此解释here)。

因此将其更改为allowed.length = 0;非常正常。

function MyHandler(cell, allowed, componentList) {
    allowed.length = 0;
    allowed.push("/libs/foundation/components/list");
}