如何将URL附加到angularjs中按钮链接的末尾?

时间:2014-02-03 05:24:26

标签: angularjs

假设我当前在页面上:

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与之前的类似(保留其中的任何参数),除了根目录和#之间存在“移动”。

如何使“点击此处移动设备”链接重定向到相应的网址,如上所述? 这样做是好的做法吗?举例赞赏。

1 个答案:

答案 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的解决方案肯定是首选的解决方案。

将它变成一个函数的好处是你必须传递的就是你在“/#/”之前改变的东西。

祝你好运:)