0

为了构建实际的导航,我喜欢这种方法: http: //jsfiddle.net/xUsCc/1/,我在这里找到了:Recursion in Angular directives,还在这里创建了一个后续问题:我如何将指令绑定到注入服务而不是父或隔离范围?

问题是指令从标记上的属性中获取数据,该属性是父作用域上的作用域变量,如下所示:

<tree family="treeFamily"></tree>

导航栏位于视图之外,因此除了根范围之外,没有可以从中获取变量的范围。

我在想我可以注入一些允许用户访问菜单项的工厂/服务。我尝试在隔离范围内设置一个范围变量,但这只会杀死任何渲染。我猜角度不喜欢在隔离范围内设置任何变量

    scope: {family: {
        name : "Parent",
        children: [{
            name : "Child1",
            children: [{
                name : "Grandchild1",
                children: []
            },{
                name : "Grandchild2",
                children: []
            },{
                name : "Grandchild3",
                children: []
            }]
        }, {
            name: "Child2",
            children: []
        }]
      }
    }
4

1 回答 1

0

如果你真的需要递归指令的东西,从模型中初始化它$rootScope似乎是正确的解决方案。

如果您的菜单只有两个级别,我会简单地将它包装到一个控制器中,该控制器从 获取其数据$rootScope或添加到$rootScope一些允许控制菜单中项目的方法(例如addSection()remoteSection()等)。

您还可以使用 aService来允许不同组件之间的通信。

于 2013-09-12T22:06:47.623 回答