在$ stateChangeSuccess期间删除参数

时间:2019-04-05 08:10:35

标签: angularjs

我有一个用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);
            }
        });

但它不起作用。

0 个答案:

没有答案