2014-02-11 54 views
1

我正在爲搜索應用程序構建過濾組件,這是我第一次進入AngularJS。指令和控制器通信

這裏有一個Plunker還是什麼,我這麼遠,它的工作原理我如何想:

http://plnkr.co/I6ewaU

有兩兩件事讓我擔心這個實現:

  • 我必須通過filters作爲filter指令的屬性才能訪問filters,MainController,當然必須有更好的方法來做到這一點?我想修改filters對象,而不必將其作爲屬性傳遞。

  • filtergroup指令中定義addFilter是正確的還是應該在MainController上定義?

我一直在谷歌搜索一段時間,但似乎無法找到替代品,並希望得到任何幫助。

乾杯。

回答

1

AngularJS的方式是顯示它在html中的作用。 Html必須通過不隱藏到JS來解釋功能。

例如,除非我讀取JS,否則如何知道此更新過濾器?因此,除非有必要,否則不要做任何事情。如果您製作任何指令,請嘗試將功能公開給html。

<filtergroup type="filter-name" filter-store="filters"> 

在Angularjs中有很多很好的指令。我總是先使用它們。

這是我會怎麼做,http://plnkr.co/edit/okCp5FZJo1ZR9962uaHT?p=preview

<div class="sidebar"> 
     <p>Filters: {{ filters }}</p> 
     filter1 <input type="checkbox" ng-model="filters[1]"/><br/> 
     filter2 <input type="checkbox" ng-model="filters[2]"/><br/> 
     filter3 <input type="checkbox" ng-model="filters[3]"/><br/> 
     filter4 <input type="checkbox" ng-model="filters[4]"/><br/> 
     filter5 <input type="checkbox" ng-model="filters[5]"/><br/> 
    </div> 

「少典,少manitenance」

+0

只是說,我把你的建議和使用所做的一切只是內置AngularJS指令。我試圖過分複雜的解決方案,歡呼! – Daniel