我根据我的观察修改了我的问题。虽然$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');
});
};
希望我已正确解释了这个场景。
答案 0 :(得分:1)
当angular解析ng-controller指令时,控制器只会初始化一次。由于控制器初始化一次,因此ng-init也会运行一次。
为了您的满意,在第一行的控制器中添加一个断点,看看您何时达到该断点。每次点击标签时,你是否达到了断点?如果没有,则每次都不会调用ng-init