gpt4 book ai didi

angularjs - 在单元格模板中使用函数

转载 作者:行者123 更新时间:2023-12-04 00:30:24 27 4
gpt4 key购买 nike

我正在使用带有 ui-grid 的 angularjs。网格的一列包含一个时间戳,我想将其呈现为格式正确的日期。

到目前为止,我尝试过这样但从未调用过该函数。

  $scope.formatDate = function(date) {
return '42';
};

$scope.columns = [
{field: 'date', cellTemplate: '<div class="ui-grid-cell-contents">formatDate({{row.entity.date}})</div>'},
{field: 'title'},
{field: 'quantity'},
//[...]
];

相反,函数调用被视为字符串文字。因此,该列始终显示 formatDate(*timestamp*) .

我只是通过在接收它们时在每一行上定义一个函数来找到一种不令人满意的实现方式:
  $scope.columns = [
{field: 'getFormattedDate()'},
//[...]
];

$http.post('/api/data/').success(function (data) {
$scope.gridOptions.data = data.elements;

$scope.gridOptions.data.forEach(function(row) {
row.getFormattedDate = function() {
return '42';
}
})
});

有什么更好的建议吗?

最佳答案

如果您想使用 ui-grid 访问 Controller 范围级别的功能您可以使用 grid.appScope ,这是一个简单的例子:

{
name: 'date',
cellTemplate: '<div class="ui-grid-cell-contents">{{grid.appScope.parseDate(row.entity.date)}}</div>'
}

完整示例:

angular.module('myApp', ['ui.grid'])
.controller('myCtrl', ['$scope', function ($scope) {

$scope.parseDate = function (p) {
// Just return the value you want to output
return p;
}

$scope.parseName = function (p) {
// Just return the value you want to output
return p;
}

$scope.gridOptions = {
data: [{
name: "Foo",
date: "2015-10-12"
}, {
name: "Bar",
date: "2014-10-12"
}],
columnDefs: [{
name: 'name',
cellTemplate: '<div class="ui-grid-cell-contents">{{grid.appScope.parseName(row.entity.name)}}</div>'
}, {
name: 'date',
cellTemplate: '<div class="ui-grid-cell-contents">{{grid.appScope.parseDate(row.entity.date)}}</div>'
}]
};
}]);

Fiddle Example

关于angularjs - 在单元格模板中使用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33081390/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com