angularJS中的路由重定向

时间:2013-02-25 19:36:06

标签: javascript angularjs

所以我有通常的路由选择,但现在我想问一下我是否可以重定向到另一个页面,但在此之前我想调用一个函数。

这就是我到目前为止所拥有的。但它不能正常工作。

when('/person/remove/:Id', {
    resolve:  {
        delay: function ($q, $route, person) {
            var currentIndex = $route.current.params.Id;
            var brochure = person.get(currentIndex);
            person.remove(brochure);
        }
     },
     redirectTo: '/person'
})

2 个答案:

答案 0 :(得分:3)

你确定你应该为此使用路线吗?我从你的例子中看出,删除网址永远不会显示任何内容,它应该只调用服务器,然后重定向?如果是这种情况,那么您不应该使用URL来删除记录。在GUI中单击将触发服务以在后台删除记录,并在完成后重定向。

所以不要从/ person / 123转到/ person / 123 / remove然后/ person,你只需从/ person / 123转到/ person。删除是一个操作,不应该在您的应用程序中由它自己的URL表示。

答案 1 :(得分:1)

好吧,如果你这样的话......:

when('/person/remove/:Id', {
  resolve:  {
    delay: function ($q, $route, person, $location) {
      var currentIndex = $route.current.params.Id;
      var brochure = person.get(currentIndex);
      person.remove(brochure)
         .then(function(){ $location.path('/person'); });
    }
   }
})

......它会起作用,但它很臭,而不是“Angular方式”。我的意思是,你可能不应该使用有角度的路线为你做这种事情。