如何在angularjs中调用控制器时加载函数

时间:2017-02-25 18:18:34

标签: javascript angularjs controller mean-stack angularjs-routing

我有一个功能

        state('showList', {
            url: '/listView',
            templateUrl: 'app/templates/showlist.html',
            controller: "showListCtrl"
        }).

我的控制器,

.controller('overViewCtrl', function ($scope) {
    $scope.getList = function(){
        //A http call
    }
 });

当我的路由更改为' / listView',然后调用overView控制器但是函数getList()没有被调用,但是当我刷新页面时我被调用。任何人都可以帮助我。我可以帮助我。只想在控制器加载的那一刻调用该函数。谢谢。

当我的路线更改为' / listview'

3 个答案:

答案 0 :(得分:0)

您可以在外部函数中声明代码,

setContentView(boardView);

或者你可以在页面上使用ng-init来调用函数

答案 1 :(得分:0)

.controller('overViewCtrl', function ($scope) {
    $scope.getList = function(){
        //A http call
    }
  $scope.getList() //just call it here

 });

或者我建议您使用resolve初始获取数据

https://medium.com/opinionated-angularjs/advanced-routing-and-resolves-a2fcbf874a1c#.t127bl60d

答案 2 :(得分:0)

您可以使用ui-router的resolve功能让您的控制器更加轻薄,但在控制器加载后仍然可以访问已解析的数据

// router
$stateProvider.state('myState', {
  resolve: {
    simpleObj: function(){
      return {value: 'simple!'};
    }
  }
}

// controller
['simpleObj', function(simpleObj) {
  console.log(simpleObj); // ==> value: 'simple!'
}]