0

ユーザーの権限に基づいて、サイドキックに表示されるコンポーネントのリストを変更しようとしています。ここで説明したように試しています。

私が知りたいのは、引数として受け取った変更された許可された配列を送り返す方法です。これは、配列に加えた変更がローカルスコープにあるように見えるためです。たとえば、許可されたコンポーネントをデフォルトのリストコンポーネントのみで構成したい場合は、次のようにします。

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

ただし、コントロールがこのイベントをトリガーした関数に戻ると、これらの変更は表示されません。配列か何かを返す必要がありますか?ここで何か不足している場合は説明してもらえますか?

4

1 に答える 1

0

Ok。最後に問題を考え出しました。ハンドラーに渡されたコンポーネントの既存のリストをクリアしたかったので、allowed = [];.

これにより、許可された配列への既存の参照がすべて削除されました。(これについての詳細はこちらで説明されています)。

したがって、それをに変更すると、allowed.length = 0;まったく問題なく動作します。

function MyHandler(cell, allowed, componentList) {
    allowed.length = 0;
    allowed.push("/libs/foundation/components/list");
}
于 2013-10-31T13:45:54.123 に答える