当前位置: 首页 > 面试题库 >

angularjs-单击带有实际URL的链接时刷新

马泰
2023-03-14
问题内容

我使用routeProvider为我的URL定义控件和模板。

当我单击具有与实际位置相同的URL的链接时,没有任何反应。我希望reload()如果用户单击这样的链接就可以调用该方法,即使位置没有更改。换句话说,如果将位置设置为相同的值,则我希望它的行为与将其设置为不同的值时相同。

有没有一种方法可以配置routeProvider或locationProvider使其自动执行?或正确的做法是什么?这是往返应用程序中的标准行为,但是如何在angularjs中实现呢?

我也在Google网上论坛上问过。

更新:

这个问题有很多见解,所以我将尝试解释如何解决我的问题。

我创建了一个自定义指令来链接我的应用程序,就像Renan Tomal Fernandes在评论中建议的那样。

angular.module('core.directives').directive('diHref', ['$location', '$route',
        function($location, $route) {
    return function(scope, element, attrs) {
        scope.$watch('diHref', function() {
            if(attrs.diHref) {
                element.attr('href', attrs.diHref);
                element.bind('click', function(event) {
                    scope.$apply(function(){
                        if($location.path() == attrs.diHref) $route.reload();
                    });
                });
            }
        });
    }
}]);

该指令然后用于我要具有此功能的应用程序中的所有链接。

<a di-href="/home/">Home</a>

该指令的作用是根据href属性为您设置属性,di- href以便angular可以像往常一样处理它,并且当您将鼠标悬停在链接上时可以看到url。此外,当用户单击它并且链接的路径与当前路径相同时,它会重新加载路由。


问题答案:

您应该使用$ route.reload()强制重新加载。

我不知道是否有“自动”方式来执行此操作,但是您可以使用ng单击这些链接



 类似资料:
  • 点击一个元素后,如何使用selenium找到当前url?我有这个网站:http://www.runningintheusa.com/Classic/View.aspx?RaceID=5622 我有代码(假设所有相关的库都已导入) 我运行代码,它只返回原来的网址是http://www.runningintheusa.com/Classic/View.aspx?RaceID=5622 我怎么能找到的网

  • 问题内容: 我正在html 5模式下使用angularjs。似乎可以控制页面上的所有href。但是,如果我想链接到该应用程序同一域中的某个内容,但实际上不在该应用程序中,则该怎么办?一个示例是pdf。 如果我做的角度会尝试使用html5mode并使用路由提供程序来确定应该加载哪个视图。但是我实际上希望浏览器以常规方式转到该页面。 唯一的方法是与路由提供者制定规则,并使用window.locatio

  • 我在Wordpress上有一个旋转木马。我发现我不能在Chrome上点击任何项目链接,但当我使用Safari或Firefox时,它工作得很好。你可以看到我住在这里。我认为这是因为Safari/Firefox中旋转木马的辅助功能无法在项目之间拖动移动,但所有链接都可以工作。

  • 问题内容: 我有这样的HTML结构: 当前,当我单击带有ID的时,两个函数都被触发,但是我希望那个函数被触发。我怎样才能做到这一点? 问题答案: 您需要做的就是停止事件传播/冒泡。 此代码将帮助您: 如果您的和函数如下所示,则单击DIV 时您只会进入控制台。如果没有,您将在控制台输出窗口中跟随。

  • 问题内容: 是否可以在不使用JavaScript的情况下单击超链接来调用Java Servlet? 问题答案: 使超链接具有您在文件中为其定义的servlet映射的URL 。 所述元件限定了servlet和URL模式之间的映射。下面的示例将servlet映射到以开头的任何URL : 在此示例中,诸如的超链接将调用servlet。

  • 问题内容: 我想抓取页面,然后转到下一个链接,如下所示: scrapy能够解释该脚本的javascript代码吗? 通过livehttpheaders扩展,我发现单击Next会生成一个带有大量“垃圾”的POST,如下所示: 我正在尝试在类上构建我的Spider ,但是我无法真正弄清楚如何编写代码,因为我使用该方法来处理第一个URL(碰巧是登录表单),我在其中进行了POST: 然后我定义了commi