2016-11-17 44 views
0

我需要一個單元格表具有多個值。我爲ui-grid選項做了一個構建,爲單元格和很少的css行定製了一個模板。它起作用並允許我決定價值是否必須保持在同一行或多行。動態角度過濾器在ui網格分組自定義單元格模板

自定義模板:

var template = 
    '<div class="ui-grid-cell-contents crm-group">'+ 
    '<div class="crm-group-row" ng-repeat="rowFields in col.colDef.fields">' + 
     '<div class="crm-group-col" ng-repeat="colField in rowFields" ng-if="row.entity[colField.name]">' + 
      '<span class="title" ng-if="colField.descr">'+ 
       '{{colField.descr}}: '+ 
      '</span>' + 
      '<span class="content">'+ 
       //"{{row.entity[colField.name] }}"+ //without filter 
       "{{row.entity[colField.name] | colField.cellFilter}}"+ //<-- HERE doesn't work 
      '</span>' + 
     '</div>'+ 
    '</div>' + 
    '</div>'; 

選項結構:

{ field: 'group', 
    name: 'Group', 
    width: '**', 
    fields : [ 
     [ 
      { 
       name: "age", 
       descr: "Num", 
       cellFilter : "floatToFixed:'2'", 
      }, 
      { 
       name: "email", 
       descr: "Email", 
      }, 
     ], 
    ], 
    cellTemplate: template 
}, 

現在我需要的可能不同的過濾器適用於每個值。所以我把它放在場地結構上。在這種情況下,我想將自定義過濾器應用到第一個字段值。

篩選:

app.filter('floatToFixed', function() { 
    return function (input, number) { 
     console.log(input); 
     console.log(number); 

     if (!input) 
      return null; 

     if (!number) 
      return input; 
     else 
      return parseFloat(input).toFixed(parseInt(number)); 
    } 
}); 

但它不工作。 Here蹲點。

幫助表示感謝。

+1

http://stackoverflow.com/questions/21491747/apply-formatting-fi動態地重複 - 重複這個回答你的問題 – Kliment

回答

1

首先,管道後的格式不正確| - 過濾器名稱不能包含點,你可以做的是有一個過濾器應用過濾器從字符串,這就是我可以從頂部我的頭:

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

.filter('applyFilter', function($filter) { 
    return function(input, filter) { 
     var filterToApply = filter !== undefined ? filter.split(':') : undefined; 
     return filterToApply === undefined ? input : $filter(filterToApply[0])(input, parseInt(filterToApply[1], 10)) 
    } 
    }) 

,然後在HTML

"{{row.entity[colField.name] | applyFilter:colField.cellFilter}}" 
+0

簡單的想法,但仔細看看我需要什麼。我被卡在語法錯誤。 – jedi