我已经开始开发一个汉堡模块,2个部分基本上包括:优雅汉堡菜单指令
- 一个“汉堡大开眼界”按钮,打开的菜单中,最有可能的属性指令,包括点击事件监听器,dom和css不可知
- 一个“汉堡菜单”元素,最有可能是一个受益于包容性的指令,让客户可以决定菜单包含的重复性。这基本上在ng-transclude元素之前的顶部提供了一个关闭按钮。
在功能方面,这两个元素之间必须存在紧密的关系,即按钮元素将调用汉堡菜单元素中的“打开”。
事情是,我有一个约束,即按钮和菜单不必包含在对方内。举例来说,一个必须能够使用模块,像这样
<ul burger-menu>
<li>Save</li>
<li>Load</li>
</ul>
<section id="container">
<a href="" burger-opener class="burgerOpen"><a>
</section>
这种约束似乎是自动排除指令,指令使用“规定”语法,因为这angularjs功能设指令是自包含的通信。所以除非我创建一个包含我的2个元素的顶级DOM控制器......我被卡住了。
我一直在使用蛮力的方法,那就是使用来自Rootcope的广播来发送“open”消息给菜单指令。它的作用像一个魅力,但我不满意它。
另一种方法是设置一个即使在按钮上,但我会把这当作一个奇怪的原因失败。我可能是错的,但我相当确定有一种更优雅的方式来使用AngularJS范例来连接这两个元素,而不使用广播或事件。
你知道吗?我想我基本上是问如何组件如ui bootstrap模式服务实际上工作。
我想实现我想要的最简单和最优雅的方法是让我的2个元素在burgerController下,并为它们提供继承范围。 – 2015-03-25 12:06:10