2013-05-09 162 views
1

我有一些关于嵌套指令范围的问题。我有两个指令:列和嵌套菜单。它们的结构可以是这样的:Angular.JS - 一个指令中的指令,在指令中,指令内。范围问题

    • 嵌套菜单
    • 嵌套菜单
      • 嵌套菜单
      • 其他内容
    • 嵌套菜单
    • 其他内容
    • 其他内容

列具有可变的,这是所有的嵌套菜单的应反应。我试图用几种方式来做这项工作,我发现谷歌搜索,如广播来自列指令的事件(出于某种原因,嵌套菜单只看到事件,当我从$ rootScope广播它),设置一个指令控制器在列和存储变量(我可以读它,但我不能$看它)。

重要的是两个指令都有一个独立的范围,因为它们应该可以在多个区域重复使用,有时甚至可以嵌套在自己的范围内。

我做了一个简化的基础结构Plnkr,这是行不通的。 http://plnkr.co/edit/1GP7SKacO777og8PysNF

谢谢!

回答

2

我不知道你想如何表现完全。但是,这是一个解决两个指令相互影响的指令。

nested-menu目前仅在其父项中预期column,但如果您愿意,您可以将其更改为在其父项中预期另一个nested-menu

这是工作的重击者。希望这可以帮助。

http://plnkr.co/edit/IAn9Ib8sSkQwKx6mpsm5?p=preview

+0

嗨Ganaraj。这非常接近我想要的,非常感谢。我希望它以这种方式行事,因为嵌套菜单的行为取决于列的状态。 但是,我还需要监听嵌套菜单指令中的值(不仅在视图中)。你有什么想法如何实现这一目标? – ricardogo 2013-05-10 01:18:44

+0

哈,我设法$观看控制器功能:http://plnkr.co/edit/9nIhoObRLbkSyiwKCQri 我接受你的答案。 我做了一个简单的测试用例,在那个函数可以工作的plnkr中,但是一个简单的变量却没有。你知道为什么吗? – ricardogo 2013-05-10 01:44:46