web-dev-qa-db-fra.com

rediriger par routage dans angularjs

j'ai l'exigence suivante: une liste doit être affichée pour tous les articles avec un lien d'édition et de suppression. lorsque l'utilisateur clique sur modifier, le formulaire de modification doit apparaître avec des zones de texte et un bouton d'enregistrement. Maintenant, lorsque l'utilisateur modifie les données et clique sur le bouton Enregistrer, les données doivent être enregistrées et la page de liste doit apparaître à nouveau avec les données modifiées. tout fonctionne bien, mais comment puis-je rediriger vers la page d'annonce via le routage dans angularjs? ci-dessous est une partie du code:

CONTRÔLEUR DE ROUTAGE:

    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'});
}]);

modifier le formulaire:

    <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>

comment rediriger vers la même page d'annonce?

25
z22

Vous devez injecter le service $ location dans votre contrôleur editCtrl.

Ensuite, dans votre fonction d'enregistrement, ajoutez ce qui suit pour effectuer la redirection (notez que le chemin correspond à votre itinéraire).

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

Cette vidéo Youtube pourrait également vous aider.

60
Martin