如何在Angular.js的控制器内部自动调用方法?

时间:2018-10-04 06:29:59

标签: javascript angularjs

我最近了解了Angular.js。在这里,我将Angular.js与Beego(Go Framework)集成在一起以开发单页应用程序。我混淆了如何在Angular控制器中自动调用方法?

这是我的角度控制器:

angular.module('myApp')
    .controller('BarangMasukController', ['$scope', '$http', 'myServices', function ($scope, $http, myServices) {
        var initializeTask = function () {
            myServices.testAPI()
                .then(function (response) {
                    $scope.Sa = response.data.S;
                    $scope.Da = response.data.D;
                    console.log("Sa"+$scope.Sa);
                    console.log("Da"+$scope.Da);
                });
        }
        initializeTask();         
}]);

我的角度服务:

angular.module('myApp')
.factory('myServices', ['$http', function ($http) {
    return {
        //testapi
        testAPI: function () {
            return $http.get('/myapi');
        },
    };
}]);

我的弯角路线:

angular.module('myApp').config(function($routeProvider, $locationProvider) {
    $routeProvider
    .when("/testAPI", {
      templateUrl: "static/views/penjualan/manage_penjualan.tpl",
      controller: 'BarangMasukController' 
    })
      .otherwise({
        redirectTo: '/'
      });

      $locationProvider.html5Mode(true);

  });

如您所见,我需要在控制器中手动调用方法initializeTask()。当控制器内部有多种方法时,就会出现问题。请帮忙。

1 个答案:

答案 0 :(得分:0)

如果希望自动调用方法,则可以使用JavaScript中的立即调用函数表达式(IIFE),该函数可以在定义后立即运行。

(function () {
    // logic here
})();

有关更多info,请参见Mozilla开发人员指南。

如果要将所有初始化逻辑放在方法中,并且正在使用components,则可以使用angularjs $onInit()生命周期钩子,该钩子将在元素已构建,并且绑定已初始化。可以找到更多信息here