[英]3angular.js:13920 TypeError: Cannot set property 'contract' of undefined
function loadAll() {
Organization.query({`enter code here`
page: pagingParams.page - 1,
size: vm.itemsPerPage,
sort: sort(),
mapperType: 'NORMAL',
status: 'DISABLED',
search: vm.search
}, onSuccess, onError);
function sort() {
var result = [vm.predicate + ',' + (vm.reverse ? 'asc' : 'desc')];
if (vm.predicate !== 'id') {
result.push('id');
}
return result;
}
function onSuccess(data, headers) {
vm.links = ParseLinks.parse(headers('link'));
vm.totalItems = headers('X-Total-Count');
vm.queryCount = vm.totalItems;
vm.page = pagingParams.page;
vm.searchParams = PrmJson.fromJson(pagingParams.search);
// vm.organizations = data;
vm.organizations = getContractStatus(data);
}
function onError(error) {
AlertService.error(error.data.message);
}
}
function getContractStatus(organizations) {
for (var i = 0; i < organizations.length; i++) {
Contract.getByOrganizationId({
organizationId: organizations[i].id
}, function (data) {
if (data.length == 0) {
organizations[i]["contract"] = {id: 0};
} else {
organizations[i]["contract"] = {id: data.id};
}
}
);
}
return organizations;
}
When I run the code above I get the following error message: 当我运行上面的代码时,我收到以下错误消息:
angular.js:13920 TypeError: Cannot set property 'contract' of undefined
angular.js:13920 TypeError:无法设置未定义的属性'contract'
You are passing anonymous function, so there data
and i
value both are undefined . 您正在传递匿名函数,因此
data
和i
值都未定义。
function(data,i) {
if (data.length == 0) {
organizations[i]["contract"] = {
id: 0
};
} else {
organizations[i]["contract"] = {
id: data.id
};
}
}(data,i);
Demo 演示版
for (var i = 0; i <= 5; i++) { demo1(i, function(k,l) { console.log('annonymous',l) }(i,i)); } function demo1(val) { console.log('demo1',val) }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.