指令和控制器通信



我正在为搜索应用程序构建一个过滤组件,这是我第一次涉足AngularJS。

这是一个 Plunker 或我到目前为止所拥有的,它按照我想要的方式工作:

http://plnkr.co/I6ewaU

我对此实现有两件事感到担忧:

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

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

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

干杯。

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>   

"更少的代码,更少的操作"

最新更新