解决
诀窍是使用window.location =' ....';
我是AngularJS的新手,我在保存表单数据后遇到重定向问题。
当我点击“保存”时按钮,我将数据发送到服务器,将其保存到数据库。
$scope.save = function (trips) {
if (trips.length != 0) {
tripsRepositorySave.save(trips).then(function () {
$location.url('/Trips?id=' + trips[0].id);
});
}
};
这是tripsRepositorySave
app.factory('tripsRepositorySave', function ($http, $q) {
return {
save: function (trips) {
var deferred = $q.defer();
$http.post('/Trips/Save', trips).success(function () { deferred.resolve(); });
return deferred.promise;
}
}
})
结果就是这个网址
http://localhost:3333/Trips?assignmentID=2#/Trips?assignmentID=2
我无法让它重写整个路径,我尝试了$ location.path,$ scope.apply()以及我可以google的所有内容,但结果仍然相同。
另一件事是我希望页面也能重新加载,而且似乎没有发生。
感谢您的任何建议:)
答案 0 :(得分:1)
你想要这样的东西:
$location.path("/Trips").search('id', trips[0].id);
如果需要附加哈希值,请参阅哈希函数。
答案 1 :(得分:0)
除了Andy Gaskell的回答。
$ location.url(...)将仅管理#'之后的部分内容。所以你的代码按预期工作。 如果您想重新加载整页使用window.location或$window