Javascript ng网格中的动态列定义
我想在从数据库返回的值之后动态地分配ng grid列名称,但问题是它在从ajax返回数据之前被初始化,我无法调用gridOption,所以它显示balnk,所以请帮助我如何通过ajax返回值构造列名称Javascript ng网格中的动态列定义,javascript,angularjs,ng-grid,Javascript,Angularjs,Ng Grid,我想在从数据库返回的值之后动态地分配ng grid列名称,但问题是它在从ajax返回数据之前被初始化,我无法调用gridOption,所以它显示balnk,所以请帮助我如何通过ajax返回值构造列名称 $scope.gridOptions = { data: 'data.Values', columnDefs: [ { field: "ID", displayName:
$scope.gridOptions =
{
data: 'data.Values',
columnDefs:
[
{ field: "ID", displayName: "Record Id" },
{ field: "Value", displayName: $scope.ColumnName, cellFilter: cellfilterType },
],
};
其中,$scope.ColumnName
来自下一行
RecordService.getRecords().then(function (data) {
$scope.ColumnName= data.something;
}
谢谢尝试设置第一个“默认”值,然后用承诺更改它
$scope.gridOptions =
{
data: 'data.Values',
columnDefs:
[
{
field: "ID",
displayName: "Record Id"
},
{ field: "Value",
displayName: "default",
cellFilter: cellfilterType
},
]
};
现在:
RecordService.getRecords().then(function (data) {
$scope.gridOptions.columnDefs[1].displayName = data.something;
}
服务RecordService
返回承诺,因此我们创建承诺工厂,如:
.factory('RecordService', ['$resource','$q', function($resource, $q) {
var data = { something: "from service" } ;
var factory = {
getRecords: function (selectedSubject) {
var deferred = $q.defer();
deferred.resolve(data);
return deferred.promise;
}
}
return factory;
}]);
演示感谢Max的帮助,我在帮助columnDef的帮助下完成了此操作,如下所示: 第1步:
$scope.colDef = [];
第二步:
RecordService.getRecords().then(function (data){
$scope.colDef=["ColumnName":data.something]
}
$scope.gridOptions = {
data: 'data.UdiValues',
columnDefs:'colDef',
filterOptions: $scope.filterOptions
};
第三步:
RecordService.getRecords().then(function (data){
$scope.colDef=["ColumnName":data.something]
}
$scope.gridOptions = {
data: 'data.UdiValues',
columnDefs:'colDef',
filterOptions: $scope.filterOptions
};
差不多
返回json、玩游戏、使用GET映射到字符串等?我做过类似的事情:-
self.gridOptions.columnDefs = columnDefs(colDef,displayNames);
列定义为:-
var columnDefs = function(data,cd){
var colDef= [];
var mi = null;
var colByOrder = sortedByOrder(data);
for(var i=0 ; i < colByOrder.length ; i++){
colDef.push({
width: width,
field: String(colByOrder[i][1].position),
menuItems: menuItems(this),
displayName: cd[colByOrder[i][1].position],
enableSorting: false,
type: 'string',
});
}
return colDef;
};
var columnDefs=函数(数据,cd){
var colDef=[];
var mi=null;
var colByOrder=sortedByOrder(数据);
for(var i=0;i
你能发布HTML部分吗?当然可以,这不是你的HTML,而是一行。编辑您的帖子并添加完整的HTML。感谢回复最大值,但同样的问题再次出现..将其设置为列名“默认”。不是新的:(我尝试在plunker中复制它,请发布完整的HTML或在哪里加载GridOptions很棒!说明您可以使用columnDefs字符串,nggrid将绑定到$scope属性。我认为在步骤2中,您应该使用'colDef'而不是'columnDefs',不是吗?