javascript - 指令和 Controller 通信

标签 javascript angularjs

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

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

http://plnkr.co/I6ewaU

此实现有两件事让我担心:

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

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

我已经在 Google 上搜索了一段时间,但似乎找不到替代方案,希望得到任何帮助。

干杯。

最佳答案

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>   

“更少的代码,更少的维护”

关于javascript - 指令和 Controller 通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21706381/

相关文章:

javascript - Gitlab 使用 Axios 或 Curl 请求发布/放入 Node - 无法写入资源 - 400 错误

JavaScript:删除共享相同属性值的对象的重复项

javascript - Angular ng-repeat 不会为动态创建的数组绑定(bind)数据

javascript - 如果文本过滤器在 ng-repeat 中没有返回结果,则显示消息

javascript - angular.bind 与 ECMAScript 5 .bind

node.js - AngularJS socket.IO Bootstrap Modals 仅一次

javascript - 如何在 JavaScript/jQuery 中创建一个动态的 SELECT 下拉列表?

javascript - 如何简化异步 axios post 方法的多个 'then' ?

javascript - 打破数组内的数组 php

javascript - 根据范围值添加指令