在ng-grid中使用过滤器的单元模板

时间:2013-08-26 11:52:55

标签: angularjs ng-grid

我创建了一个依赖于过滤器的单元格模板,但不处理过滤器。

单元格定义为{field:'status', displayName:'Status', cellTemplate: 'cell/statusCellTemplate.html'}],其中模板为

<button class="btn btn-primary" ng-click="changeStatus(row.getProperty('id'),'{{row.getProperty(col.field) || switchStatus}}')">{{row.getProperty(col.field)}}</button>

修改

myapp.filter('switchStatus', function() {
    return function(input) {
        return (input == 'STOPPED') ? 'STARTED' : 'STOPPED';
    };
});

渲染的单元格为<button class="btn btn-primary ng-scope ng-binding" ng-click="changeStatus(row.getProperty('id'),'STOPPED')">STOPPED</button>。我期待第二个参数STARTED。

Plunker:点击STOPPED时,当前状态应为STARTED

1 个答案:

答案 0 :(得分:0)

data来自哪里?我想你是想检查input是'停止'还是'开始'是这样的:

app.filter('switchStatus', function() {
return function(input) {
    var out = "";
    if (input == 'STOPPED') {
        out = 'STARTED';
    } else if (input == 'STARTED') {
        out = 'STOPPED';
    }
    console.log(input + " " + out);
    return out;
};

您可以通过以下方式缩短过滤器:

app.filter('switchStatus', function() {
return function(input) {
    return (input == 'STOPPED') ? 'STARTED' : 'STOPPED';
};