簡體   English   中英

3angular.js:13920 TypeError:無法設置未定義的屬性'contract'

[英]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'

您正在傳遞匿名函數,因此datai值都未定義。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM