javascript - Angular 自定义指令在过滤器中使用范围变量

标签 javascript angularjs

我的 Angular 自定义指令遇到了一些问题。我想访问过滤器中的“type”变量,它是filterung对象(在第一级,所以没有自定义过滤器应该是可能的)。

这是(到目前为止非常基本的)结构:

angular.module('....').directive('ngTest', function () {
return {
  restrict: 'AE',
  replace: 'true',
  scope: {
    list: '=',
    type: '@'
  },
  template: '<div><ul><li ng-repeat="information in list | filter:{ttype:type}">....</li></ul></div>'
  }
});

有没有办法访问模板字符串中的变量?转义或使用模板 html 文件对我来说都不起作用..

谢谢, 克里斯

最佳答案

使用链接函数从范围变量构造过滤器。

这稍微不那么尴尬,并且可以让您在将来更灵活地更改过滤器。

angular.module('....').directive('ngTest', function () {
  return {
    restrict: 'AE',
    replace: 'true',
    scope: {
      list: '=',
      type: '@'
    },
    template: '<div><ul><li ng-repeat="information in list | filter:filterOb">....</li></ul></div>',
    link: function(scope, element, attrs) {
      scope.filterOb = { ttype: scope.type }
    }
  }
});

这是一个工作 plunk相反,您将整个过滤器对象传递给指令,而不仅仅是一个字符串 - 这样您就可以过滤任何您想要的内容,而无需更改指令

关于javascript - Angular 自定义指令在过滤器中使用范围变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44848657/

相关文章:

javascript - 服务器端之前的客户端验证

php - 无法使用 Jquery/Javascript 隐藏列表菜单

javascript - 单击展开的部分时折叠并展开其他部分

javascript - Angular UI 引导 typeahead ngmodel 在清除字段时显示 null

javascript - 如何在innerHTML中使用var javascript?

javascript - 如果出现错误,如何更改 http post 请求的 url

javascript - Object.assign() 与 angular.extend()

javascript - 使用自定义 Controller 在不同 View 中共享范围

java - 从服务器端 API 重定向时,Safari Angular URL 参数被忽略

javascript - 如何使用socket.io从客户端向服务器插入数据?