我正在为搜索应用程序构建一个过滤组件,这是我第一次涉足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>
"更少的代码,更少的操作"