我正在尝试根据用户的权限修改sidekick中显示的组件列表。 我按照here的解释来尝试。
我想知道的是如何发回作为参数接收的修改后的允许数组,因为我对数组所做的修改似乎都在本地范围内。对于例如如果我希望允许的组件只包含默认列表组件,我会这样做。
function MyHandler(cell, allowed, componentList) {
allowed = [];
allowed.push("/libs/foundation/components/list");
}
但是一旦控件返回到触发此事件的函数,这些更改就不可见了。我应该返回数组还是什么?你能解释我在这里遗失的东西吗?
答案 0 :(得分:0)
确定。终于找到了问题。我想清除传递给我的处理程序的现有组件列表,我使用了allowed = [];
。
这删除了对允许的数组的所有现有引用。 (更多关于此解释here)。
因此将其更改为allowed.length = 0;
非常正常。
function MyHandler(cell, allowed, componentList) {
allowed.length = 0;
allowed.push("/libs/foundation/components/list");
}