【问题标题】:Abstract inline Angularjs filter抽象内联 Angularjs 过滤器
【发布时间】:2016-02-29 12:33:38
【问题描述】:

Angular 新手!

我已经设置了一个非常基本的过滤器,我对此非常满意。但是我想将内联过滤器转换为 .filter() 函数 - 我希望像 filter: dataFilter 或类似的东西一样使用它。

所以,目前我有一些选择字段:

<select ng-model="search.foo"><!-- options --></select>
<select ng-model="search.bar"><!-- options --></select>

还有一个ng-repeat的排序数据:

<div ng-repeat="data in response.data | filter:{foo: search.foo, bar: search.bar}">
    <!-- display sorted data -->
</div>

ng-repeat 的上方是我要抽象的内联过滤器。

我该怎么做?

感谢所有指导。


我的最终目标是在过滤器中没有结果时显示一条消息。我相信过滤器需要“抽象”才能使它起作用?大致如下:

<p ng-show="(response.data | filter:blahFilter).length == 0">No results found.</p>

【问题讨论】:

    标签: angularjs ionic-framework angularjs-ng-repeat


    【解决方案1】:

    我真的建议您将其移至控制器。然后在里面只使用你的过滤器作为函数调用

    $scope.myData = $filter('blaFilter')(response.data)
    

    然后

    <p ng-show="myData.length == 0">No results found.</p>
    

    【讨论】:

    • 记得在控制器中注入$filter
    • 是的,我同意所有这些 - 我更想知道如何创建该过滤器?
    • 你不需要这样做,如果你已经在你的 Angular 应用程序中创建了过滤器,那么该过滤器将可以作为“内联”直接从 JS 访问。如果不是,您必须只创建一个过滤器,这两种方法都可以工作。可能我没听懂这个问题,您在创建过滤器方面需要帮助吗?
    • 我没有 blaFilter。我也不知道如何创建一个模拟 - filter:{foo: search.foo, bar: search.bar}
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-27
    • 2015-12-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多