所以我有通常的路由选择,但现在我想问一下我是否可以重定向到另一个页面,但在此之前我想调用一个函数。
这就是我到目前为止所拥有的。但它不能正常工作。
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'
})
答案 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方式”。我的意思是,你可能不应该使用有角度的路线为你做这种事情。