angulrjs 中 ui router 菜单二次点击时刷新的解决方案

在ui-sref 的 元素上增加如下点击事件:

$scope.urlClick = function (event,navInfo) {
    var navUrl = window.location.href.split('#')||'';
    var hrefUrl = '1';
    if(event.target){
        hrefUrl = decodeURIComponent(event.target.getAttribute('href').replace('#',''))
    }
    if(navUrl && navUrl[1]){
        navUrl = decodeURIComponent(navUrl[1]);
    }
    console.log(hrefUrl);
    console.log(navUrl);
    if(hrefUrl.indexOf(navUrl) !== -1){
        $state.reload();
    }
}

1、获取当前url ,找个找,动态参数的url,无法直接用$state获取,就直接用的原生并截取。

2、因为动态url带参数的是encode 的,所以需要decode一下

3、需要判断路径是包含,不能判断等于,否则可能会出现问题

猜你喜欢

转载自blog.csdn.net/lizhen_software/article/details/113311167