我有一个用ionic和angularjs制作的cordova应用程序,为了解决这个问题,我不得不拦截状态变化并添加一些参数
alist =[{'id':1, 'text':'Dogs are great'}, {'id':2, 'text':'Cats are great'}, {'id':3, 'text':'Fish are smelly'}]
def append_kv(dd):
dd['first_word '] = ''
return dd
alist = [append_kv(dd) for dd in alist]
我之所以这样做,是因为当某些参数为null时,由于angularjs的错误,控制器被初始化了两次。
现在,我修复了添加这些参数的错误,但是我想删除它们,以便控制器将获得null而不是另一个值。
我正在尝试做这样的事情
$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);
}
});
但它不起作用。