在 Angular 指令中创建过滤器

Posted

技术标签:

【中文标题】在 Angular 指令中创建过滤器【英文标题】:Creating Filters Inside of Angular Directive 【发布时间】:2015-02-10 02:40:08 【问题描述】:

我很好奇为什么这个角度过滤器可以在 Angular 指令之外工作,但不能在内部工作。谁能解释一下?

例如,在下面的 Plunkr 中,我添加了一个搜索过滤器,该过滤器将在 Bootstrap Angular UI 手风琴之外工作,但在将其移除并添加到内部时,它不起作用?

http://plnkr.co/edit/GdFvay?p=preview

 <div class="col-sm-4">
      <input type="text" ng-model="searchText" class="form-control" placeholder="Search All"> 
      <div>
        <accordion close-others="oneAtATime">
          <accordion-group >
            <accordion-heading>
              Search
            </accordion-heading>
            <input type="text" ng-model="searchText" class="form-control" placeholder="Search All"> 
          </accordion-group>
        </accordion>

【问题讨论】:

【参考方案1】:

accordion-group 指令有一个独立的范围。 使用点符号再试一次(在处理范围继承时很重要)

例如,将 ng-model 更改为:

ng-model="searchForm.input"

你会发现它会起作用。

请参考:

AngularJS documentation on scopes

Egghead video on the dot notation

【讨论】:

以上是关于在 Angular 指令中创建过滤器的主要内容,如果未能解决你的问题,请参考以下文章

Angular 2:从属性指令获取对组件属性的引用

如何将 Angular 指令设置为在 Javascript 中创建的 DOM 元素

在 spring 中创建过滤器聚合

Angular - 达到 10 次 $digest() 迭代。创建数组的深层副本时中止

使用 Google Apps 脚本在 Gmail 中创建本机过滤器

如何在 SonataAdmin 中创建自定义 DataGrid 过滤器