【问题标题】:ng-table multiple template filters using coffeescript使用咖啡脚本的 ng-table 多个模板过滤器
【发布时间】:2016-02-13 04:59:33
【问题描述】:

我正在同时使用 AngularJS、ng-table 和 coffeescript,并想在 coffeescript 中创建一个多模板过滤器并将其传递到我的 angularjs 模板中。

我有一个姓名和姓氏组合列,我想要两个过滤器用于“姓名”和“姓氏”。

到目前为止,我的工作方式是这样的;

      <td data-title="'Customer'" sortable="'fullname'"
        filter="{'name_cont': 'text', 'surname_cont':'text'}" >

但我想像这样在我的 AngularJS 控制器中定义这个过滤器

   $scope.nameFilterDef = {
     name: {
       id: "text",
       placeholder: "Name"
     },
     surname: {
       id: "text",
       placeholder: "Surname"
     }
   }

并像这样使用该过滤器清理我的模板;

      <td data-title="'Customer'" sortable="'fullname'"
        filter="nameFilterDef" >

当我这样调用过滤器时,虽然没有出现过滤器框。

更新

如果我将 {{nameFilterDef}} 放在页面上,我可以看到我的过滤器哈希被传入。

【问题讨论】:

  • 乍一看,filter 属性似乎没有被解析为角度表达式。你试过filter="{{nameFilterDef}}"吗?
  • 是的,我确实尝试过,但我得到了错误;错误:[$parse:syntax] 语法错误:令牌“nameFilterDef”是意外的,在表达式 [{{nameFilterDef}}] 的第 3 列应为 [:],从 [nameFilterDef}}] 开始。
  • 您可以在模板中通过 ng-repeating nameFilterDef 来测试您的代码。如果它显示为空,则意味着模板 $scope 与您预期的不同。你能创建一个 plunker 或 jsFiddle 吗?
  • 如果我在 ng-repeat 中使用 nameFilterDef,我的过滤器会打​​印在屏幕上。

标签: javascript angularjs coffeescript ngtable


【解决方案1】:

如果这个 html 标记适合你...

<td data-title="'Customer'" sortable="'fullname'"
    filter="{'name_cont': 'text', 'surname_cont':'text'}" >

那么这段代码也应该可以工作:

 //use this
 $scope.nameFilterDef = {
     'name_cont': 'text', 
     'surname_cont':'text'
  }
 //instead of this:
 $scope.nameFilterDef = {
 name: {
   id: "text",
   placeholder: "Name"
 },
 surname: {
   id: "text",
   placeholder: "Surname"
 }
}

-

 <td data-title="'Customer'" sortable="'fullname'"
 filter="nameFilterDef" >

下面是 codepen 中的一个工作示例: Passing filter from the controller as an object

此外,如果您在 plunker、codepen 或 jsFiddle 中提供工作代码,那将非常有帮助。

希望对你有所帮助。

【讨论】:

  • 我尝试了你在那儿的建议,但没有奏效。我认为这一定是我的设置深处的东西。也许是 rails 资产管道阻碍了,或者是咖啡脚本,或者我正在使用的 AngularJS 版本
  • 我发现我正在运行一个不允许此功能的 ng-table 版本。所以我正在升级它。
  • 我现在已经解决了一些错误并升级到 ng-table 的 0.5.5,您的回答很好,谢谢。
猜你喜欢
  • 2014-09-28
  • 2018-11-07
  • 2015-10-02
  • 1970-01-01
  • 2021-08-17
  • 2013-01-09
  • 2012-08-26
  • 2012-01-19
  • 2012-02-22
相关资源
最近更新 更多