[英]angular.js:13920 TypeError: Cannot read property 'push' of null
[英]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;
}
當我運行上面的代碼時,我收到以下錯誤消息:
angular.js:13920 TypeError:無法設置未定義的屬性'contract'
您正在傳遞匿名函數,因此data
和i
值都未定義。
function(data,i) {
if (data.length == 0) {
organizations[i]["contract"] = {
id: 0
};
} else {
organizations[i]["contract"] = {
id: data.id
};
}
}(data,i);
演示版
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.