代码之家  ›  专栏  ›  技术社区  ›  Sameer

在两个控制器中调用一个函数-AngularJS 1.x

  •  0
  • Sameer  · 技术社区  · 7 年前

    我有两个控制器

    const fetchApi = () => {
      console.log('fetching');
    };
    
    fetchApi();
    

    我想在dashboard.controller.js中调用此函数,而无需在dashboard controller中再次编写相同的硬代码。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Ashish Mehta    7 年前

    var app = angular.module('myapp', []);
    
    var fetchApi = function($scope){
       console.log("fetching");
    };
    fetchApi.$inject = ['$scope'];
    app.controller('homeCtrl', fetchApi);
    app.controller('dashboardCtrl', fetchApi);
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular.min.js"></script>
    <div ng-app="myapp">
    <div ng-controller="dashboardCtrl"></div>
    <div ng-controller="homeCtrl"></div>
    </div>

    编辑:注入服务

    var app = angular.module('myapp', []);
    
    var fetchApi = function($scope, RestService){
     console.log("fetching");
     RestService.getUser();
    };
    fetchApi.$inject = ['$scope', 'RestService'];
    app.controller('homeCtrl', fetchApi);
    app.controller('dashboardCtrl', fetchApi);
    
    app.service('RestService', ['$http',
     function($http){
        this.getUser = function() {
            //$http api call
            console.log("get user");
        }
     }
    ])
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular.min.js"></script>
        <div ng-app="myapp">
        <div ng-controller="dashboardCtrl"></div>
        <div ng-controller="homeCtrl"></div>
        </div>