tps*_*lva 6 javascript angularjs angular-ui-router ionic-framework
有没有办法使用$ 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'
}
}
})
Run Code Online (Sandbox Code Playgroud)
在productInfo内部,有一个比较按钮,用户进行选择,并选择另一个产品与第一个产品进行比较.
当用户在选择状态下确认他的选择时,应用程序进入最后状态,即比较,显示两个产品的结果.
在最后一个状态(比较)中,如果用户单击其中一个产品,则应用程序必须返回状态1,productInfo,并选择所单击的产品.
我正在使用$ionicHistory.goBack(-2)而不是$state.go('productInfo')避免弄乱我的后退按钮(每个屏幕都有一个默认按钮,它只是调用$ ionicHistory.goBack()).
问题出现了:我无法更改$stateParamsproductInfo状态,因此显示了最后选择的产品.
理想情况就是这样$ionicHistory.goBack(-2, {product: obj}).
我的最后一枪是:
this.$ionicHistory.viewHistory().views[this.$ionicHistory.backView().backViewId].stateParams.id = this.selectedProduct.id;
this.$ionicHistory.goBack(-2);
Run Code Online (Sandbox Code Playgroud)
但这会创造一个新的历史,因此无法按预期工作.
您是否尝试过清除前两个视图(“productInfo”、“比较”),然后进入请求的状态。它会是这样的:
$ionicHistory.removeBackView();
$ionicHistory.removeBackView();
$state.go('productinfo', {product: <selected-product>});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
824 次 |
| 最近记录: |