26

次の要件があります。編集および削除リンクのあるすべてのアイテムのリストを表示する必要があります。ユーザーが編集をクリックすると、編集フォームがテキストボックスと保存ボタンとともに表示されます。これで、ユーザーがデータを編集して保存ボタンをクリックすると、データが保存され、変更されたデータとともにリストページが再び表示されます。すべて正常に動作しますが、angularjsでルーティングしてリストページに再度リダイレクトするにはどうすればよいですか?以下はコードの一部です。

ルーティングコントローラー:

    angular.module('productapp', []).
    config(['$routeProvider', function($routeProvider) {
    $routeProvider.
        when('/productapp', {templateUrl: 'partials/productList.html', controller: productsCtrl}).
        when('/productapp/:productId', {templateUrl: 'partials/edit.html', controller: editCtrl}).
        otherwise({redirectTo: '/productapp'});
}]);

フォームの編集:

    <div>
    <form method="POST">
    <label>Add New Product:</label>
        <input type="text" name="keywords" ng-model="product.name" placeholder="enter name..." value="{{product.name}}">
        <input type="text" name="desc" ng-model="product.description" placeholder="enter description..." value="{{product.description}}">
        <button type="submit" ng-click="save(product.product_id,$event)" >Save</button>
    </form>
</div>

同じリストページにリダイレクトするにはどうすればよいですか?

4

1 に答える 1

61

コントローラに$locationサービスを挿入する必要がありますeditCtrl

次に、保存関数に以下を追加してリダイレクトを実行します(パスがルートと一致することに注意してください)。

$scope.save = function (...) {
    // ...
    $location.path('/productapp');
}

このYoutubeビデオもあなたを助けるかもしれません。

于 2012-09-21T12:32:29.220 に答える