我已經開始開發一個漢堡模塊,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