angularjs – 确定在控制器中启用了HTML5模式

前端之家收集整理的这篇文章主要介绍了angularjs – 确定在控制器中启用了HTML5模式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在Angular Js的控制器中,我想知道是否启用了 html5Mode.我怎样才能做到这一点?

细节:

在配置阶段我可以设置$locationProvider.html5Mode(true)或者我可以通过使用$locationProvider.html5Mode()来学习是否启用html5Mode

但是,我不能在“运行”块上执行相同的操作,如下所示:

var isHtml5enabled = $location.html5mode() // looking for something like this...

有没有办法做到这一点?

更新

为什么我需要它?

我想修改ui-router.

ui-router的ui-sref指令和$state.href(“”)service / method生成url而不考虑它是否在Html5Mode中.

如果启用了Html5Mode,那么这样的网址就可以了:/ my / base / path / generated / by / uirouter
但如果它被禁用,它应该是这样的:/ my / base / path /#/ generated / by / uirouter

所以我试图检测Html5Mode的状态.

我在配置阶段做了,但是在我读完信息后,另一个模块可以改变它的状态. (我猜……)这就是为什么我想确定控制器/运行块上Html5Mode的状态.

解决方法

虽然现在已经很晚了,但我发现你可以通过$location检测HTML5模式是否开启.$$html5.所以你可以在控制器中执行此操作:

if (!$location.$$html5) {
    // your code to execute when HTML5 mode is not enabled
}

猜你在找的Angularjs相关文章