为什么每次加载视图时都不会调用ng-init中的$ http - AngularJS

时间:2015-12-21 15:47:53

标签: angularjs angularjs-ng-init ng-controller

我根据我的观察修改了我的问题。虽然$http({strong> ng-init} {@ 1}}( ng-init),但只要第二次或第三次调用视图,服务器端的initWishList请求就不会发生)被调用。方案如下:

我在导航栏中有一个我的帐户标签,打开一个包含MyWishlist,我的地址等选项的视图。点击第一个我的心愿单时时间,$http请求发生,但是当我再次点击我的帐户时(这次我在加载.html视图时看不到服务器端的任何调用),以及然后,如果我点击我的愿望清单,控制器会被调用,但$ http没有被调用(这次我再次看不到来自$http的服务器端的任何调用)但我可以看到警告初始调用

为什么这样?

$scope.initWishList = function(){
    alert('Init called')
    $http.get("/get_wish_list/")
    .success(function (response) {
        $scope.refreshWishList(JSON.parse(response["products_json"]));
    })
    .error(function(){
        console.log('Error');
    });
};

希望我已正确解释了这个场景。

1 个答案:

答案 0 :(得分:1)

当angular解析ng-controller指令时,控制器只会初始化一次。由于控制器初始化一次,因此ng-init也会运行一次。

为了您的满意,在第一行的控制器中添加一个断点,看看您何时达到该断点。每次点击标签时,你是否达到了断点?如果没有,则每次都不会调用ng-init