【问题标题】:Angular, ng-href causing page to refreshAngular,ng-href 导致页面刷新
【发布时间】:2015-12-15 22:52:32
【问题描述】:

我有一个非常简单的 ng-href 在重复中以对象为食,这导致了一个小问题。在我的应用程序的其他任何地方,如果我使用 ng-href,它会保持单页感觉并且不会刷新应用程序,但是在这种情况下,它似乎正在刷新页面,我不知道为什么。

 <md-button ng-if="category.link" ng-href="/{{category.link}}"> 

我只是在重复里面有这个,从一个重复的对象中提取出来,它只是说如果它有一个链接就显示这个按钮,并将 ng-href 附加到它上面(使用 angular-material 按钮)。

链接工作正常,它只是刷新页面。任何见解都会非常有帮助,我似乎无法弄清楚这一点。谢谢!

【问题讨论】:

标签: javascript angularjs


【解决方案1】:

我们遇到了同样的问题,但结果证明是一个 javascript 库添加了一个名为 e.stopPropagation() 的点击处理程序。一旦我们把它拿出来,角度就开始处理链接,所以没有页面重新加载。我们使用 ui-router,所以我们怀疑它是罪魁祸首,但事实并非如此。

我们发现点击处理程序是问题所在,因为页面重新加载只发生在特定菜单内的链接上。在其他任何地方,与 ng-href 的链接都按预期工作。

【讨论】:

    【解决方案2】:

    在斜杠(/) 前面放置一个井号(#) 以使角度路由器工作而不是重新加载页面。

    <md-button ng-if="category.link" ng-href="#/{{category.link}}"> 
    

    【讨论】:

    • 如果 $locationProvider.html5Mode(true); 会发生什么?
    • @pankajparkar 请仔细阅读问题,OP 提到我的应用程序的其他任何地方,如果我使用 ng-href,它会保持单页感觉并且不会刷新应用程序......如果不启用 html5mode,这可能吗?
    • 是的,如果你启用 html5Mode 那么哈希前缀就会消失,,
    猜你喜欢
    • 2020-08-09
    • 2018-11-27
    • 1970-01-01
    • 2019-08-27
    • 2019-01-10
    • 2019-02-08
    • 1970-01-01
    • 1970-01-01
    • 2016-04-30
    相关资源
    最近更新 更多