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