AngularJS TypeError:updateCompany未定义

时间:2018-02-13 12:16:16

标签: javascript java angularjs

资源:

这是我用于Update功能的资源。我无法在我的资源(用Java编写)

中调用Update方法
>>> from copy import deepcopy
>>> x = [[7, 8], 3, "hello", [6, 8], "world", 17]
>>> x = [[7, 8], 3, "hello", [6, 8], "world", 17]
>>> w = deepcopy(x)
>>> w[0][1] = 5
>>> print(w)
[[7, 5], 3, 'hello', [6, 8], 'world', 17]
>>> print(x)
[[7, 8], 3, 'hello', [6, 8], 'world', 17]

更新公司职能:

首先,我将所有公司都放在一个数组中,然后我尝试在数组中的特定公司上调用更新操作

行问题:" updateCompany。$ updateCompany(company,function(){"

TypeError:updateCompany未定义

c.adminCompaniesResource = $resource("api/admin/companies/:id",{"id":"@id"},{
  "updateCompany": {method:"PUT"}
});

1 个答案:

答案 0 :(得分:0)

您的代码似乎没有问题。错误消息几乎是解决问题的方法。对函数c.updateCompanyForm()的调用正在向其发送undefined值。这导致失败。如果您可以提供完整的代码片段,则可以找到错误源。

我试图用虚函数模拟你的代码。

<html>
   <head>
      <title>Test</title>
   </head>
   <body>
      <script>
         var c = {
            companyFields: {
                id: 10
            },
            adminAllCompaniesResource: {
                query: function(fields, callback) {
                    callback();
                    return [{
                        id: 10
                    }];
                }
            }
         };
         c.allCompanies = [
            {id: 10}
         ];

         c.updateCompanyForm = function(company) {
           const updateCompany = company;
           c.allCompanies = c.adminAllCompaniesResource.query(c.companyFields, function() {
             c.allCompanies.forEach(function(company){
               if (c.companyFields.id == company.id) {
                 company.id = c.companyFields.id;
                 company.password = c.companyFields.password;
                 company.email = c.companyFields.email;
                 updateCompany.$updateCompany(company, function() { 
                   //problem here
                   c.companyFields.id = company.id;
                   c.companyFields.compName = company.compName;
                   c.companyFields.password = company.password;
                   c.companyFields.email = company.email;
                   c.updateCompanyTableDiv = true;
                   c.updateCompanyExceptionDiv = false;
                   }, function() {
                     c.error("Request could not be completed");
                     c.updateCompanyExceptionDiv = true;
                     c.updateCompanyTableDiv = false;
                   });
                 }
               })
            }, function() {
                 c.error("Request could not be completed")
                 c.getAllCompaniesExceptionDiv = true;
                 c.getAllCompaniesTableDiv = false;
            });
         }
         //Test 1: This should show message "Here"
         c.updateCompanyForm({id: 10, $updateCompany: function() {alert('Here')}});
         //Test 2: This will produce error
         c.updateCompanyForm(undefined);
      </script>
   </body>
</html>

希望这能让您了解问题何时开始传播。