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 スラッグ パラメータを更新したいと考えています。

$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適用されるパラメータです。searchquerystring

したがって、スラッグを URL パスの代わりにクエリ文字列の一部として作成できる場合は、ビューの変更を停止できます。

または、 ui-route のような他のルーティング ライブラリを調べる必要があります。

于 2013-09-13T10:05:01.240 に答える