私は新しいAngular Applicationに取り組んでおり、私はドロップダウンナビゲーションを構築しています。私は現在、それほどのようなコントローラ内ナビゲーションアイテムの配列を返すためにファクトリーを使用しています:入れ子配列の要素を削除して元の構造を保持するにはどうすればよいですか?
var sections = this.NavMenusFactory.sections;
メニューの構造がそうのようになります。
私はを循環する必要がありますユーザーがアクセスする権限を持たず、元の構造を保持しているアイテムを配列に追加して削除します。これは現在のユーザーと配列オブジェクト内のrequiredPermissions
インデックスによって決定されます。
私はlodashライブラリにアクセスしていますので、フィルタリングと削除の機能を試してみました。どのように私はそれが必要なのか正確には何も働いていない。
var sections = this.NavMenusFactory.sections;
this.dropdownNavItems = [];
forEach(sections, (section) => {
if (section.section === 'financials') {
this.dropdownNavItems = this.dropdownNavItems.concat(section.pages.filter(navitem => {
// console.log("section", navitem);
return !navitem.requiredPermissions || this.Permissions.parseAccessByValue(selectedVehicle, navitem.requiredPermissions);
}));
}
});
私は削除された項目と画像のように、元の構造を保持することはできませんよ。私はそれをやろうとしていますかの簡単な例を与えるために。私はJavascriptには非常に新しいので、いくつかの指針は非常に高く評価されます。
ユーザーが許可していないアイテムを「削除」する代わりに、テンプレートに「hasPermission」チェックを付けて表示するだけで、権限が更新されると自動的に表示されます。私は何を求めているのか、特定のアイテムを「取り除く」ことによって何を達成したいのですか? – haxxxton
あなたは基本的にあなたが権限を持っていないページを削除したいですか? –
@haxxxtonその解決法は非常に簡単な選択肢のようです。その考え方を拡張するために、フィルタを角度フィルタにして、ng-repeat – Belfordz