假设我当前在页面上:
www.mysite.com/root/#/?page=orderpage
在页面上,我有一个链接:
<a href="#">Click Here for Mobile</a>
我想这样做,当用户点击“Click Here For Mobile”链接时,我可以将用户带到:
www.mysite.com/root/mobile/#/?page=orderpage
请注意,URL与之前的类似(保留其中的任何参数),除了根目录和#之间存在“移动”。
如何使“点击此处移动设备”链接重定向到相应的网址,如上所述? 这样做是好的做法吗?举例赞赏。
答案 0 :(得分:0)
正如Ajay所说,在这种情况下,客户端路由是不可能的。
所以你剩下的就是做(像Ajay说的那样):
<a target="_self" href="/root/mobile/#/?page=orderpage">
或者,您可以定义一个函数(在服务中,在指定的控制器中,或者您可以访问它的其他地方),它接受一个字符串并更改$ window.location.href(这将导致一个页面重新加载)。
这样的事情:
app.controller("SomeCtrl", function ($scope, $location, $window) {
$scope.changeUrl = function (url) {
var newUrl = $location.$$absUrl.replace("/#/", url);
$window.location.href = newUrl;
};
});
然后在你的html中你会使用:
<a href="" ng-click="changeUrl('/mobile/#/')">Go mobile</a>
如果没有启用Javascript(我假设你不会支持Angular应用程序),这不会带你到任何地方。在这种情况下,Ajay的解决方案肯定是首选的解决方案。
将它变成一个函数的好处是你必须传递的就是你在“/#/”之前改变的东西。
祝你好运:)