2015-12-21 22 views
0

我根據我的觀察修改了我的問題。在服務器側$http請求每當視圖被稱爲第二或第三或等次雖然initWishListNG-INIT)獲取調用沒有發生。該方案是如下:

我在導航欄,打開具有類似於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

應該不使用ng-init。爲什麼你不在範圍控制器中啓動一個變量並在之後進行更新? – AlainIb

+0

@AlainIb嗯,但爲什麼當視圖被再次點擊時它不會被調用? –

+0

你可以顯示你的場景的HTML嗎?每當它附加到的元素被Angular渲染和編譯時,'ng-init'就會被執行,所以從服務器或緩存中檢索模板並不重要。 – tasseKATT

回答

0

控制器被intialized只有一次當角度解析納克控制器指令。由於控制器初始化一次,ng-init也會運行一次。

爲了您的滿意,在你的控制器中添加一個破發點上的第一行,看到當你打的破發點。你每次點擊標籤時是否擊中了這個突破點?如果不是,則不會每次調用ng-init

+0

我已經用一些新的發現更新了我的問題。請立即檢查 –

相關問題