【发布时间】:2016-01-28 16:21:39
【问题描述】:
对于 cellTemplate,我有带有一个 ng-if 条件的“div”标签和带有其他条件的“a”标签。我想要的是当行中选择的名称不是“FILE”类型时进入“div”标签,而“FILE”类型何时想要进入“a”标签并转到所选链接。有了这个解决方案,一切都进入了 div 标签。
我在其中定义这样的 ui-grid 组件的配置文件
"columnDefs": [
{
"name": "id",
"displayName": "columns.id",
"headerCellFilter": "translate",
"visible": false
},
{
"name": "name",
"displayName": "columns.name",
"headerCellFilter": "translate",
"cellTemplate": "<div ng-if=\"row.entity.type != 'FILE'\" ng-click=\"grid.appScope.rowClick(row)\" style=\"cursor:pointer;\" class=\"ui-grid-cell-contents\">{{COL_FIELD CUSTOM_FILTERS}}</div><a ng-if=\"row.entity.type == 'FILE'\" href=\"{{'path/toUrl/FileId=' + row.entity.id}}\">{{COL_FIELD CUSTOM_FILTERS}}</a>"
},
{
"name": "type",
"displayName": "columns.type",
"headerCellFilter": "translate"
}
然后在我的控制器中我有这样的东西
angular.module('search').controller('Search.ResultsController', ['$scope',
function ($scope) {
$scope.$emit('req-component-config', 'results');
$scope.config = null;
$scope.gridOptions = {};
$scope.$on('component-config', applyConfig);
function applyConfig(e, componentId, config) {
if (componentId == 'results') {
$scope.gridOptions = {
enableColumnResizing: true,
enableRowSelection: true,
enableRowHeaderSelection: false,
multiSelect: false,
noUnselect: false,
paginationPageSizes: config.paginationPageSizes,
paginationPageSize: config.paginationPageSize,
useExternalPagination: true,
useExternalSorting: true,
//comment out filtering until service side supports it
////enableFiltering: config.enableFiltering,
//enableFiltering: true,
useExternalFiltering: true,
columnDefs: config.columnDefs,
onRegisterApi: function (gridApi) {
$scope.gridApi = gridApi;
.....}
}
}
}
$scope.rowClick = function(row){
console.log(row.entity.name);
}
那么你可以在 cellTemplate 和带有 ng-if 的标签中使用类似的东西吗?
顺便说一句,我放入网格的数据类似于 { id: 1, name: "asdas", type:"FILE"...}.....
【问题讨论】:
标签: javascript angularjs html angular-ui-grid