2016-10-04 126 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状态中的任务完成而触发的数据。