在我的Ionic应用程序中,我在home
状态下将参数定义为null。因此,当此参数定义为true
时,会执行某些操作,在这种情况下会出现模式。
问题是,当我切换到另一个状态并返回时,此参数将其值保持为true
。
如何清除特定视图的特定参数?
这是一段代码:
if ($stateParams.watchTutorial === true) {
$rootScope.$broadcast('startTutorial');
$stateParams.watchTutorial = null;
}
试图将其设置为null但不起作用。
要继续,请导航:
主页 - >查看1 - >点击按钮 - >主页(帕拉姆:{watchTutorial: true}
)。很棒,回家和莫代尔出现。继续在家里航行..
主页 - >查看2 - >返回首页(没有特定的参数),watchTutorial = true
无论如何都会出现模态屏幕。它不应该。
有什么想法吗?谢谢。
答案 0 :(得分:1)
我会监听$ stateChangeSuccess事件,然后对可用信息做出反应。
$rootScope.$on('$stateChangeSuccess',
function(event, toState, toParams, fromState, fromParams){
if(fromState == "[the_state_of_view_2]"){
toParams.watchTutorial = false;
//or toParams = {}
}else{
if ($stateParams.watchTutorial === true) {
$rootScope.$broadcast('startTutorial');
$stateParams.watchTutorial = null;
}
})
答案 1 :(得分:1)
好的,由于你的答案@Andre Kreinbring,我解决了这个问题。
这使得这份工作:
$rootScope.$on('$stateChangeSuccess',
function(event, toState, toParams, fromState, fromParams) {
if(toState.name == 'app.home') {
if(toParams.watchTutorial === true) {
$rootScope.$broadcast('startTutorial');
toParams.watchTutorial = false;
}
}
});