200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > href无法跳转到angularjs中的指定页面

href无法跳转到angularjs中的指定页面

时间:2023-07-15 17:01:13

相关推荐

href无法跳转到angularjs中的指定页面

自己写了一个angularjs + ionic项目,在广告中有一个查看商品详情,复制商品详情链接之后,页面没有跳转到指定页面,而是跳转到ionic项目的首页。

测试过程:

1、在没有打包压缩js 和 html(缓存)之前,可以链接到指定页面,但是打包压缩之后,地址栏会迅速的切换为angularjs默认的首页路由地址。

2、打包压缩的工程,进入首页之后,又能够正常的路由。

部分代码如下,代码如图

1、没有压缩的代码

2、压缩之后

过程分析

第一次使用HTML模板,它被加载到模板缓存中,以便快速检索。你可以直接将模板标签加载到缓存中,或者通过$templateCache服务。

也就是说,第一次通过href链接进入ionic项目,没有第一次使用HTML,即实际上$templateCache还没有真正缓存数据,找不到数据,那么执行默认的路由,进入首页的html页面,(这是才是第一次使用HTML模板),当再次点击指定连接的时候,就执行正常了。

解决办法:

压缩的js文件去掉$templateCache缓存即可。

下面是自己写了一个规避办法

String.prototype.startWith=function(str){ if(str==null||str==""||this.length==0||str.length>this.length) return false; if(this.substr(0,str.length)==str) return true; else return false; return true; }//解决直接访问angular深度链接不成功的问题var historyBefortUrl = "";//链接进来的Url,可能为空var targetJumptoUrl = "";//想跳转的页面function firstDeepJumpto(){window.location.href = targetJumptoUrl;}//定义配置信息app.config(function ($stateProvider, $ionicConfigProvider) {//禁用所有缓存$ionicConfigProvider.views.maxCache(0);//解决深度链接跳转不成功的问题console.log(window.location.href);console.log(document.referrer);historyBefortUrl = document.referrer;targetJumptoUrl = window.location.href;//链接进来的URL与当前angular app域名不一致 并且 不是angular app 首页的链接if(!historyBefortUrl.startWith('/index.php/Wap/Homemake/indexHomeAngular.html') && (targetJumptoUrl !="/index.php/Wap/Homemake/indexHomeAngular.html#/appliance/index" && targetJumptoUrl !="/index.php/Wap/Homemake/indexHomeAngular.html")){setTimeout(firstDeepJumpto,200);}});

大小: 8.5 KB 大小: 12.4 KB 查看图片附件

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。