gpt4 book ai didi

javascript - 具有不同 $stateParams 的 Ionic $ionicHistory.goBack

转载 作者:数据小太阳 更新时间:2023-10-29 05:35:18 26 4
gpt4 key购买 nike

长话短说

有没有办法使用 $ionicHistory.goBack(-2) 更改我要返回的状态的 $stateParams?


我正在使用 Ionic 开发一个小应用程序,但我遇到了以下问题:

我有几个状态是整个过程的一部分:productInfo、选择和比较。用户选择一个产品,然后它的信息显示在状态 productInfo 中。所选产品由 $stateParams 传递。

productInfo 状态

$stateProvider.state('productInfo', {
url: '/compare/info',
params: {
product: null
},
cache: false,
views: {
'main-screen': {
templateUrl: 'templates/modules/comparator/info.html',
controller: 'CompareInfoCtrl',
controllerAs: 'product'
}
}
})

在 productInfo 中,有一个比较按钮,用户可以在此处进行选择,然后选择另一个产品与第一个产品进行比较。

当用户在选择状态下确认他的选择时,应用程序进入最后一个状态,即比较,显示两种产品的结果。

在最后一个状态(比较)中,如果用户单击其中一个产品,应用程序必须返回状态 1,productInfo,并选中所单击的产品。

我正在使用 $ionicHistory.goBack(-2) 而不是 $state.go('productInfo') 以避免弄乱我的后退按钮(每个屏幕有一个默认按钮,它只调用 $ionicHistory.goBack())。

问题来了:我无法更改 productInfo 状态的 $stateParams,因此显示了最后选择的产品。

理想的场景类似于$ionicHistory.goBack(-2, {product: obj})

我的最后一张照片是:

this.$ionicHistory.viewHistory().views[this.$ionicHistory.backView().backViewId].stateParams.id = this.selectedProduct.id;
this.$ionicHistory.goBack(-2);

但这会创建新的历史记录,因此无法按预期工作。

最佳答案

您是否尝试过清除前两个 View ('productInfo'、'comparison')然后转到请求的状态。它会是这样的:

$ionicHistory.removeBackView();
$ionicHistory.removeBackView();
$state.go('productinfo', {product: <selected-product>});

关于javascript - 具有不同 $stateParams 的 Ionic $ionicHistory.goBack,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38775111/

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