繁体   English   中英

AngularJS :: html5Mode +正常链接行为

[英]AngularJS :: html5Mode + normal link behavior

我对angular非常陌生,目前在网站上遇到问题,我们需要html5Mode(true),同时保持正常链接像html5Mode(false)一样工作。

我们在html-tag中有ng-app-因此整个页面都在模块的控制之下。 在某些页面上,我们需要通过ajax加载新内容,并更改特定控制器中的基础模型。 这应该将URL更改为新的(绝对)URL。 通过$ locationProvider.html5Mode(true);实现此目的很简单; 在module-config中。

现在的问题是:当我们激活html5Mode时,普通链接将不再按预期工作。 有什么方法可以实现理想的行为,而无需将页面分成多个模块,从而使“常规链接”脱离模块的angular和html5Mode-setting范围?

我的想法是简单地在控制器功能中使用history.pushState(),该功能处理内容重载的点击事件,但这一方面会引发很多异常,甚至无法正常工作。另一方面。

任何想法都非常感谢:-)

最好的问候,SubnetOne

最后我找到了解决方案:

Module.directive('a', function () {
    return {
        restrict: 'E',
        link: function(scope, element, attrs) {
            element.attr("target", "_self");
        }
    };
});

这会将target =“ _ self”广告投放到页面上的所有链接(锚标签)。 由于角度的劫持链接取决于

!elm.attr('target') = true

与目标的链接将表现出预期的效果。

感谢Niks对angular.js链接行为的回答-禁用特定URL的深度链接和Sebastians对有条件地将target =“ _ blank”添加到Angular JS链接的回答,我终于解决了问题:-)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM