2015-10-14 4 views
1

В моем приложении Ionic я определил параметр как null для значения по умолчанию в моем состоянии home. Поэтому, когда этот параметр определен как true, выполняются некоторые действия, в этом случае появляется модальный вид.

Проблема заключается в том, что при переключении в другое состояние и возврате этот параметр сохраняет значение true.

Как я могу удалить определенный параметр для определенного вида?

Это кусок кода:

if ($stateParams.watchTutorial === true) { 
    $rootScope.$broadcast('startTutorial'); 
    $stateParams.watchTutorial = null; 
} 

Пробовал установить его в нулевое значение, но не работает.

Для возобновления навигации:

Главная -> Просмотр 1 -> Кнопка Tap -> Home (Param: {watchTutorial: true}). Отлично, идет домой, и модальный появляется. Продолжайте плавать дома ..

Главная страница -> Вид 2 -> Вернуться назад (без параметров), watchTutorial = true в любом случае и модальный экран. И это не должно.

Любые идеи? Спасибо.

ответ

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; 
    } 
    } 
}); 
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; 
    }   
}) 
+0

событие запускаемой в $ объеме тоже. –

+0

Прежде всего, спасибо, Андре, будет ли эта работа для других государств? Поскольку 'home' является основным состоянием, и многие обратные действия идут туда, я предпочел бы иметь глобальное решение, чем добавлять каждое состояние в это событие. – Ariel

+0

Вы также можете проверить 'toState' и отреагировать, если' toState' == "Home" –

Смежные вопросы