进行了更好的方法。
我具有类似的多级导航结构,因此产生了顶部的NAV:
[
{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: []}
]
和一个单独的相关模型,该模型包含NAV定义的独特列表:
[
{id: 1, label: 'Home', icon: 'fa-home'},
{id: 2, label: 'Sitemap', icon: 'fa-sitemap'},
{id: 3, label: 'Contact', icon: 'fa-phone'}
]
这将使我能够复制NAV项目,并在一个地方更新属性,而无需重复定义。骨干有一个关系插件,可以允许这种类型的东西 - 不确定如何在Angular中做类似的事情。我可以循环浏览初始导航ID,然后用任何更改代替定义,但是我认为使用Angular 1.x
解决某些重复问题的纯角方法是使用可重复使用的指令。
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);