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

这篇博客探讨了在Angular应用中使用UI-Router时,如何处理包含动态参数的URL。通过原生JavaScript获取当前URL并进行解码,确保正确识别动态URL。同时,详细介绍了在点击事件中判断路径是否包含特定子路径以决定是否重新加载状态的方法,避免潜在问题。文章重点在于URL管理和状态管理的实践策略。
摘要由CSDN通过智能技术生成

在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、需要判断路径是包含,不能判断等于,否则可能会出现问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值