0

根据我的观察,我修改了我的问题。$http每当视图被调用第二次或第三次左右时,服务器端的请求就不会发生,尽管initWishListng-init)正在被调用。场景如下:

我在导航栏中有一个“我的帐户”选项卡,它会打开一个视图,其中包含“我的愿望清单”、“我的地址”等选项。当我第一次单击我的愿望清单$http时,会发生请求,但是当我再次单击“我的帐户”时(这次我加载 .html 视图时在服务器端看不到任何调用),然后如果我单击My Wishlist,将调用控制器但不调用 $http (这次我再次在服务器端看不到任何调用来自$http) 但我可以看到警报Init Called

为什么这样?

$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');
    });
};

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

4

1 回答 1

1

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

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

于 2015-12-21T16:17:36.223 回答