location.path()没有重定向到页面

时间:2016-03-01 18:59:24

标签: angularjs

在节点中,这是我定义细节路线的方式(渲染为jade和send)。

app.get('/details', function(req, res){

        jade.renderFile('details.jade', function(err, html){
              if(err){
                console.log(err);
              }
              res.send(html);
          });

      });

在玉中点击'blah'然后用params调用navigateToPath函数。

 a(ng-click="navigateToPath(date_obj_key, part)") blah

在角度中,此功能应该转到此路径。 url路径在浏览器中更改,但不会重定向到页面。帮助(是的,我正在注入位置服务)

  $scope.navigateToPath = function(date, part){
  var path = '/details?date='+date+'&part_type='+part;
  $location.path('/details').replace();   //also tried $location.url(path)
  $scope.apply();   //also tried $scope.$apply and $rootScope.$apply as func
  console.log($location.path());
}

1 个答案:

答案 0 :(得分:3)

我正在使用Fire Fox开发人员工具(F12)并在我的项目中使用$ window.location的地方设置了一个断点,并查看了$ window.location中的值以及它显示的内容:

enter image description here

看起来这样可行。对于同一文件夹或子文件夹中的位置以及进入完全不同的网站。

 $window.location = $window.location.origin + path

 $window.location = <whatever website you want to go to>

在我的情况下,我只是使用$ window.location来调用休息服务来下载用户从ui-grid选择的文件,同时仍然停留在同一页面上。这可能对我有用,因为我的情景与你的想法有点不同。所以我所要做的就是

 $window.location = "../../services" + "<path to my rest service>" + $scope.shortCode + "/" + $scope.wireInstSelectedRow.entity.fileName;

@shapiro我不确定为什么这不起作用

 $location.path('/details').replace();

我最初在我的项目中尝试了相同的东西,并且基于文档:https://docs.angularjs.org/api/ng/service/ $ location看起来这样可以工作,它应该用于什么,但我注意到它会放一个&# 39;#&#39;在它放置我希望它采取的路径之前,URL中的字符阻止它进入该页面。无论如何对我来说似乎只要你去一个html页面,它只是在同一个文件夹或子文件夹中

 $window.location = <the path you want to go to>;

是一个很好的解决方案......至少它为我做了诀窍。希望这会有所帮助。

相关问题