У меня есть приложение Cordova, созданное с помощью ionic и angularjs, чтобы исправить проблему, мне пришлось перехватить изменение состояния и добавить некоторые параметры
$rootScope.$on('$stateChangeStart',
function (event, toState, toParams, fromState, fromParams) {
var par = Object.keys(toParams);
var toBlock = false;
if (par.length > 0) {
par.forEach(function (item) {
if (toParams[item] == null) {
toBlock = true;
toParams[item] = "-1";
}
});
}
if (toBlock == true) {
event.preventDefault();
$state.go(toState, toParams);
}
});
Мне пришлось сделать это, потому что, когда некоторые параметры равны нулюконтроллер инициализируется дважды из-за ошибки angularjs.
Теперь я исправил эту ошибку, добавив эти параметры, но я хотел бы удалить их, чтобы контроллер получил нулевое значение, а не другое значение.
Я пытаюсь сделать что-то вроде этого
$rootScope.$on('$stateChangeSuccess',
function (event, toState, toParams, fromState, fromParams) {
var par = Object.keys(toParams);
if (par.length > 0) {
par.forEach(function (item) {
if (toParams[item] == "-1") {
toParams[item] = null;
}
});
$stateParams = toParams;
}
});
, но это не работает.