2016-10-04 221 views
3

我使用的是有角度的ui路由器,並具有父級抽象狀態(「home」)和兩個子狀態(「home.ports」和「home.editPort」)。州。 「home.state」是一個默認狀態,所以在home.state加載時首先觸發parent(「home」)狀態,這會在resolve屬性中觸發http請求。我的子狀態可以在服務器上進行更改,並可以更新父狀態的列表。所以,問題是,當我要孩子的狀態(「home.editPort」),然後回來home.ports其未觸發的家鄉,以獲取更新的房源子狀態不會觸發角狀態下的父狀態

.state('home', { 
    url: "/home", 
    templateUrl: "dest/partials/home/_home.html", 
    controller: "HomeController", 
    abstract : true, 
    data: { 
     requireLogin: true 
    }, 
    resolve: { 
     // making an http request 
     jqTreeData : ['httpService', 'BASE_HOME_URL', function (httpService, BASE_HOME_URL) { 
      var obj = { 
        url : BASE_HOME_URL + "emulationDetails", 
        responseType : "json", 
        method : "GET" 
       }; 
      return httpService.makeAjax(obj); 
     }] 
    } 
}) 
.state('home.ports', { 
    url: "/ports", 
    //templateUrl: "dest/partials/home/ports/_portList.html", 
    template: "<custom-Table tbl-Caption='Port Listing'></custom-Table>", 
    controller: "PortsListController" 
}) 
.state('home.editPort', { 
    url: "/editPort", 
    template: "<h1>Edit ports</h1>" 
}); 
+0

你是如何重定向的孩子狀態? –

+0

我在我的應用程序中有幾個鏈接(錨標籤),當用戶點擊任何相應的狀態時觸發($ state.go(...)) –

回答

0

resolve只有被調用時進入家庭狀態 - 因爲您在home.portshome.editPort之間導航,並且兩者都是home的子狀態 - 您實際上永遠不會離開home狀態 - 因此不會再次調用resolve - 您仍然處於該狀態。

您可能需要再次調用服務才能獲取由home.editPort狀態中的任務完成而觸發的數據。