繁体   English   中英

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

[英]How to automatically invoke method inside controller in Angular.js?

我最近了解了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()。 当控制器内部有多种方法时,就会出现问题。 请帮忙。

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

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

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

如果要将所有初始化逻辑放在一个方法中,并且正在使用components则可以使用angularjs $onInit()生命周期钩子,该钩子将在构造完元素上的所有控制器并绑定它们之后自动被调用初始化。 更多信息可以在这里找到。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM