如何在angular上创建有子公司的公司列表

How create list of companys who has childs company on angular?

本文关键字:子公司 公司 列表 创建 angular      更新时间:2023-09-26

如何添加子公司、编辑和删除列表中的公司。(和本地存储)我有一些代码要删除,但它们不起作用我不知道它该怎么锁感谢的帮助

if (!localStorage.getItem("companys")) {
  localStorage.setItem("companys", JSON.stringify([]));
};
(function() {
  var app = angular.module('myApp', []);
  app.controller('ListController', function($scope){
    this.retrieveCompanys = function() {
      return JSON.parse(localStorage.getItem('companys'));
    }
    this.addToStorage = function(company){
      this.companys.push(company);
      localStorage.setItem('companys', JSON.stringify(this.companys));
    }
    this.companys= this.retrieveCompanys();
     this.removeCompany = function (item) {
      var index= this.companys.indexOf(item);
      this.companys.splice(index,1);
    }
    $scope.add = false;
    $scope.togglechild = function() {
      $scope.add = !$scope.add;
    };
    $scope.edit = false;
    $scope.toggleedit = function() {
      $scope.edit = !$scope.edit;
    };
====Delete company======
    $scope.removeCompany = function(company) {
        var index = $scope.companys.indexOf(company);
        $scope.companys.splice(index,1);
    }
  });
======Child Company========
  app.controller('AddController', function(){
    this.company = { child: [] };
    this.addCompany = function(list) {
      list.addToStorage(this.company);
      this.company = {child: [] };
    };
  });
  app.controller('ChildController', function(){
    this.child = {};
    this.addChild = function(company) {
      company.childs.push(this.company);
      this.child = {}
    }
  });
})();

代码的HTML部分

<!DOCTYPE html>
<html ng-app="myApp">
   <head>
      <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
      <link rel="stylesheet" href="app.css">
   </head>
   <body  class="container" ng-controller="ListController as list">
      <div class="col-xs-12 col-sm-12 col-md-4 col-lg-4" ng-controller = "AddController as addCtrl">
         <form name="addCompanyForm"  ng-submit="addCtrl.addCompany(list)" novalidate>
            <h3 class="text-center">Add new company</h3>
            <fieldset class="form-group">
               <input  class="form-control" ng-model="addCtrl.company.name_company" placeholder="Name Company" title="Name Company" ng-required>
            </fieldset>
            <fieldset class="form-group">
               <div class="input-group">
                  <div class="input-group-addon">$</div>
                  <input  class="form-control" ng-model="addCtrl.company.annual_earnings" placeholder="Annual earnings" title="Annual earnings" ng-required>
               </div>
            </fieldset>
            <br>  
            <fieldset class="form-group">
               <input  type="submit" class="btn btn-primary pull-right"  ng-click="addCompany(list)" value="Add Company">
            </fieldset>
         </form>
         <form ng-show="add">
            <h3 class="text-center">Add child company</h3>
            <fieldset class="form-group">
               <input  class="form-control" ng-model="addCtrl.company.name_company" placeholder="Name Company" title="Name Company" ng-required>
            </fieldset>
            <fieldset class="form-group">
               <div class="input-group">
                  <div class="input-group-addon">$</div>
                  <input  class="form-control" ng-model="addCtrl.company.annual_earnings" placeholder="Annual earnings" title="Annual earnings" ng-required>
               </div>
            </fieldset>
            <br>  
            <fieldset class="form-group">
               <input  type="submit" class="btn btn-primary pull-right"  ng-click="addCompany(list)" value="Add Company">
            </fieldset>
         </form>
         <form ng-show="edit">
            <h3 class="text-center">Edit data company</h3>
            <fieldset class="form-group">
               <input  class="form-control" ng-model="addCtrl.company.name_company" placeholder="Name Company" title="Name Company" ng-required>
            </fieldset>
            <fieldset class="form-group">
               <div class="input-group">
                  <div class="input-group-addon">$</div>
                  <input  class="form-control" ng-model="addCtrl.company.annual_earnings" placeholder="Annual earnings" title="Annual earnings" ng-required>
               </div>
            </fieldset>
            <br>  
            <fieldset class="form-group">
               <input  type="submit" class="btn btn-primary pull-right"  ng-click="addCompany(list)" value="Edit Data">
            </fieldset>
         </form>
      </div>
      <div class="col-xs-12 col-sm-12 col-md-8 col-lg-8" >
         <h3 class="text-center">List of Company</h3>
         <table class="table">
            <!--=========Table Head==============-->
            <tr>
               <th class="col-xs-6 col-sm-6 col-md-6 col-lg-6">Name Company</th>
               <th class="col-xs-2 col-sm-2 col-md-2 col-lg-2 text-center">Own earnings</th>
               <th class="col-xs-2 col-sm-2 col-md-2 col-lg-2 text-center">Total earnings</th>
               <th class="col-xs-1 col-sm-2 col-md-2 col-lg-2 text-center">Edit/Delete</th>
            </tr>
            <!--===================MAIN COMPANY=====================-->
            <tr ng-repeat="company in list.companys  track by $index">
               <td class="col-xs-6 col-sm-6 col-md-6 col-lg-5 text-center">
                  <a href="#{{'demo'+$index}}" data-toggle="collapse">List</a>
                  <b>{{company.name_company}}</b>
               </td>
               <td  class="col-xs-2 col-sm-2 col-md-2 col-lg-2 text-center">
                  {{company.annual_earnings + "$"}}
               </td>
               <td class="col-xs-2 col-sm-2 col-md-2 col-lg-2 text-center">   
               </td>
               <td class="col-xs-2 col-sm-2 col-md-2 col-lg-2 text-center">
                  <a ng-click="toggleedit()" title="Edit Data">Edit</a>&ensp;|&ensp;
                  <a ng-click="removeCompany(company)" title="Delete"><b>x</b></a>&ensp;|&ensp;
                  <a ng-click="togglechild()" title="Add Child Company"><b>+</b></a>
               </td>
            <tr id="{{'demo'+$index}}" class="collapse">
               <td>{{}}</td>
               <td>{{}}</td>
               <td>{{}}</td>
               <td>{{}}</td>
            </tr>
            </tr>          
         </table>
      </div>
      <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular.min.js"></script>
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
      <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
      <script type="text/javascript" src="app.js"></script> 
   </body>
</html>

您的公司模型应该具有属性Id、parent_company_Id、company_name和manual_earning。因此,母公司的parent_company_Id属性将为空。并且子公司将具有parent_company_Id的值。您可以提供创建子公司的下拉列表来选择父公司。