gpt4 book ai didi

javascript - 子状态不会以 Angular 触发父状态

转载 作者:行者123 更新时间:2023-12-02 12:40:50 25 4
gpt4 key购买 nike

我正在使用 Angular ui 路由器,并且有一个父抽象状态(“home”)和两个子状态(“home.ports”和“home.editPort”)。状态。“home.state”是默认状态,因此当 home.state 加载时页面刷新,它首先触发父(“home”)状态,进而触发解析属性中的 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>"
});

最佳答案

仅当进入主状态时才会调用 resolve - 因为您正在 home.portshome.editPort 之间导航是 home 的子状态 - 您实际上从未离开 home 状态 - 因此 resolve 不会再次被调用 - 您仍然处于该状态。

您可能需要再次调用服务来获取数据,这是由完成 home.editPort 状态下的任务触发的。

关于javascript - 子状态不会以 Angular 触发父状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39849211/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com