【问题标题】:AngularJS TypeError: updateCompany is undefinedAngularJS TypeError:updateCompany 未定义
【发布时间】:2018-02-13 12:16:16
【问题描述】:

资源:

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

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

更新公司职能:

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

行问题:“updateCompany.$updateCompany(company, function() {”

TypeError: updateCompany 未定义

c.allCompanies = [];

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;
   });
}

【问题讨论】:

  • 看起来类似this问题的问题
  • 我看了你的建议,我的代码已经包含了其中一种解决方案:forEach 循环。我不相信您的建议与我的问题相似。你能再看看我的帖子吗?我被困在这两个多星期了

标签: javascript java angularjs


【解决方案1】:

您的代码似乎没有问题。错误消息几乎是为了解决问题。对函数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>

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

【讨论】:

    猜你喜欢
    • 2013-05-28
    • 2015-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多