我有一个像这样的多级导航结构,它会生成顶部导航:
[
{id: 1, label: 'Home', icon: 'fa-home', subitems: []},
{id: 2, label: 'Sitemap', icon: 'fa-sitemap', subitems: []},
{id: 3, label: 'Contact', icon: 'fa-phone', subitems: []}
]
这很好用,但相反,我想要做的就是这样定义导航结构:
[
{id: 1, subitems: []},
{id: 3, subitems: []},
{id: 2, subitems: []}
]
和一个单独的相关模型,它包含不同的导航定义列表:
[
{id: 1, label: 'Home', icon: 'fa-home'},
{id: 2, label: 'Sitemap', icon: 'fa-sitemap'},
{id: 3, label: 'Contact', icon: 'fa-phone'}
]
这将允许我复制导航项,并在一个位置更新属性而不重复定义。 Backbone有一个Relational插件,允许这种类型的东西 - 不知道如何在角度做这样的事情。我可以循环浏览初始导航ID并将其替换为带有任何更改的定义,但我认为使用Angular 1.x可能有更好的方法来执行此操作
答案 0 :(得分:0)
解决一些重复问题的纯角度方法是使用可重复使用的指令。
function navigationItemDirective() {
return {
link: function(scope, element, attrs) {
console.log(info) // get all necessary info
scope: {
info: "=info" // two-way binding to your separate model
id: "@" // unique id for to bind the directive with the model
}
}
}
angular.module("app").directive("navigationElemenent", navigationItemDirective);