Angularjs 无法读取属性';名称';未定义的
我的rest调用从数据库返回数据。我单独测试了rest服务调用,发现一切正常。当我尝试在前端显示它时,我得到以下错误: 'TypeError:无法读取未定义的属性'name' 当我使用chrome进行调试时,我注意到了错误消息,但无法找出问题所在 控制器Angularjs 无法读取属性';名称';未定义的,angularjs,angular-ui-grid,Angularjs,Angular Ui Grid,我的rest调用从数据库返回数据。我单独测试了rest服务调用,发现一切正常。当我尝试在前端显示它时,我得到以下错误: 'TypeError:无法读取未定义的属性'name' 当我使用chrome进行调试时,我注意到了错误消息,但无法找出问题所在 控制器 mdmApp.controller('draftReportTypeCalendarController', function($scope, $http, $location, $routeParams) { $scope.
mdmApp.controller('draftReportTypeCalendarController', function($scope, $http, $location, $routeParams) {
$scope.isSelected = false;
$scope.buttonsDisabled = false;
$scope.showSpinner = true;
// TODO: routeParam reportTypeYear
$http.get("/mdmservice/services/draftReportTypeCalendar")
.success(function(data, status, headers, config) {
$scope.draftReportTypeCalendars = data;
if (data.errorMessage != null) {
$scope.error = true;
$scope.success = false;
$scope.errorMessage = data.errorMessage + ". [Error code : " + data.errorCode + "].";
$scope.buttonsDisabled = true;
} else {
$scope.error = false;
if($scope.draftReportTypeCalendars.length == 0){
$scope.warn = true;
$scope.warnMessage = "No records found."
}
//$scope.success = true;
//$scope.successMessage = "To be decided"
$scope.buttonsDisabled = false;
}
}
)
.error(function(data, status, headers, config, statusText) {
$scope.error = true;
$scope.errorMessage = "A system error occured. Please contact EBA IT Helpdesk."
$scope.buttonsDisabled = true;
})
.finally(function () {
$scope.showSpinner = false;
});
$scope.gridOptions = {
paginationPageSizes: [23, 50, 100, 200, 300, 400, 500, 1000],
paginationPageSize: 23,
};
$scope.gridOptions.data = 'draftReportTypeCalendars';
$scope.gridOptions.enableFiltering = true;
$scope.gridOptions.enableGridMenu = true;
$scope.gridOptions.fastWatch = true;
$scope.gridOptions.multiSelect = false;
$scope.gridOptions.columnDefs = [
{
name : "referenceDate", width : "15%"
},
{
name : "reportType", width : "10%"
},
{
name : "entityName", width : "35%"
}
];
$scope.gridOptions.onRegisterApi = function(gridApi){
// set gridApi on scope
$scope.gridApi = gridApi;
gridApi.selection.on.rowSelectionChanged($scope,function(row){
$scope.selectedId = row.entity.entityId;
$scope.isSelected = row.isSelected;
});
};
浏览器日志
TypeError: Cannot read property 'name' of undefined
at Grid.buildColumns (ui-grid.js:4436)
at columnDefsWatchFunction (ui-grid.js:3176)
at ui-grid.js:3162
at Scope.$digest (angular.js:16664)
at Scope.$apply (angular.js:16928)
at done (angular.js:11266)
at completeRequest (angular.js:11464)
at XMLHttpRequest.requestLoaded (angular.js:11405)
列定义中没有“名称”选项 列定义中没有“名称”选项 你能发布相关的堆栈跟踪日志吗?添加了我的浏览器日志扫描你发布了相关的堆栈跟踪日志吗?添加了我的浏览器日志“name”-在我的所有其他功能中都可以正常工作。这不是问题所在,这令人惊讶。看起来您正试图在使用“name”的地方设置“field”,但如果它与其他函数一起工作,那么我该和谁争论呢。另一个想法是尝试将columnDefs调用从$scope.gridOptions中分离出来,因为我在答案中引用的ui网格wiki中的示例。“name”在我的所有其他函数中都可以正常工作。这不是问题所在,这令人惊讶。看起来您正试图在使用“name”的地方设置“field”,但如果它与其他函数一起工作,那么我该和谁争论呢。另一个想法是尝试将columnDefs调用从$scope.gridOptions中分离出来,就像我在回答中引用的ui网格wiki中的示例一样。