我有类似
的东西angular.module('MyApp.routing', []).
config(['$routeProvider', '$locationProvider', function ($routeProvider, $locationProvider) {
$routeProvider
.when("/",
{action: "home"})
.when("/calculator/:slug/:docId/:versionId",
{action: "calculator", reloadOnSearch: false})
.otherwise({redirectTo:'/'});
}]);
在我的路由文件中。我在我的控制器中发出了后端API的请求,我想更新URL slug param。
$scope.initPage = function () {
$scope.content = {};
$scope.isPreloaderVisible = true;
http.post("calculator.getContentData.angular",
{'slug': $scope.slug, 'docId': $scope.docId, 'versionId': $scope.versionId}, getContentSuccess, getContentErrorHandler);
}
总结一下,我使用的URL如下:
http://localhost/#/calculator//123456/
我希望将其更新(无需重新加载整页):
http://localhost/#/calculator/slug/123456/
在请求之后的方法getContentSuccess中。
答案 0 :(得分:2)
任何路由更改我相信导致视图(在ng-view中定义)更新自身。 reloadOnSearch
是一个适用于基本为search
参数的querystring
参数的参数。
因此,如果您可以将slug作为查询字符串的一部分而不是url路径,则可以停止视图更改。
否则您需要查看其他路由库,例如ui-route