指令和控制器通信

时间:2014-02-11 15:44:11

标签: javascript angularjs

我正在为搜索应用构建一个过滤组件,这是我第一次进入AngularJS。

这是一个Plunker或者我到目前为止所做的,它的工作原理我想要它:

http://plnkr.co/I6ewaU

这个实现有两件事与我有关:

  • 我必须将filters作为filter指令的一个属性,才能访问filters上的MainController,当然必须有更好的方法去做这个?我想修改filters对象,而不必将其作为属性传递。

  • addFilter指令中定义filtergroup是正确的,还是应该在MainController上定义?

我一直在谷歌上搜索一段时间,但似乎无法找到替代方案,并希望对此有任何帮助。

干杯。

1 个答案:

答案 0 :(得分: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>   

“代码少,管理不善”