加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 如何防止角度Js1.2中的重定向

发布时间:2020-12-17 08:13:17 所属栏目:安全 来源:网络整理
导读:我在应用程序中使用AngularJs-1.0.7和Bootstrap。最近我从AngularJs-1.0.7迁移到AngularJs-1.2。我使用的是Bootstrap的Accordions和Tabs。 Tab的HTML代码包含 a href =“#id_for_content”如下所示。 ul id="myTab" class="nav nav-tabs" li class="active"a
我在应用程序中使用AngularJs-1.0.7和Bootstrap。最近我从AngularJs-1.0.7迁移到AngularJs-1.2。我使用的是Bootstrap的Accordions和Tabs。

Tab的HTML代码包含< a href =“#id_for_content”>如下所示。

<ul id="myTab" class="nav nav-tabs">
    <li class="active"><a href="#firstTab" data-toggle="tab">Home</a></li>
    <li><a href="#secondTab" data-toggle="tab">Profile</a></li>
</ul>

<div id="myTabContent" class="tab-content">
    <div class="tab-pane fade in active" id="firstTab">
      <p>Content for first tab.</p>
    </div>
    <div class="tab-pane fade" id="secondTab">
      <p>Content For second tab.</p>
    </div>
</div>

在Angular的旧版本中,只有当我们给出< a href =“#/ firstTab”>的锚标签时,路由更改才会发生。但AngularJs-1.2重定向< a href =“#firstTab”&gt ;.它不考虑在#和firstTab之间的/。因此,当点击Tab时,它将重定向到http:// web_url /#/ firstTab。如何解决这个问题? 我的解决方案 我找到了一个解决这个问题的解决方案。我写了一个标签的指令。在该指令中,我检查了href属性。如果它匹配防止其默认行为。检查以下代码。

app.directive('a',function() {
    return {
        restrict: 'E',link: function(scope,elem,attrs) {
            if(attrs.href === '#firstTab'|| attrs.href === '#secondTab'){
                elem.on('click',function(e){
                    e.preventDefault();
                });
            }
        }
   };
});

但是这种方法的问题是,我必须在这里检查每个标签ID或手风琴ID。如果我使用动态Ids,它不可能检入指令。

如果你能找到更好的解决方案,让我们都知道。

只需将其添加到您的链接:
target="_self"

你准备好了)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读