angularJS $ location.url在当前结尾添加url

时间:2014-07-16 18:01:03

标签: angularjs

解决
诀窍是使用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的所有内容,但结果仍然相同。

另一件事是我希望页面也能重新加载,而且似乎没有发生。

感谢您的任何建议:)

2 个答案:

答案 0 :(得分:1)

你想要这样的东西:

$location.path("/Trips").search('id', trips[0].id);

如果需要附加哈希值,请参阅哈希函数。

https://docs.angularjs.org/api/ng/service/ $位置

答案 1 :(得分:0)

除了Andy Gaskell的回答。

$ location.url(...)将仅管理#'之后的部分内容。所以你的代码按预期工作。 如果您想重新加载整页使用window.location$window