ng-table使用coffeescript的多个模板过滤器

时间:2015-11-11 23:28:23

标签: javascript angularjs coffeescript ngtable

我一起使用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}},我可以看到我的过滤器哈希被传入。

1 个答案:

答案 0 :(得分:4)

如果这个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中提供工作代码,那将非常有帮助。

希望这会对你有所帮助。