0

我有类似的东西

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 参数。

$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 中。

4

1 回答 1

2

我认为任何路线更改都会导致视图(在 ng-view 中定义)自我更新。reloadOnSearch是适用于search基本上是参数的参数的querystring参数。

因此,如果您可以将您的 slug 作为查询字符串而不是 url 路径的一部分,您可以停止视图更改。

否则您需要查看其他路由库,例如ui-route

于 2013-09-13T10:05:01.240 回答