Относительный URL-адрес в HTML-шаблоне angularJS

0

Скажем, я на странице http://localhost/#/edit/10/step2 и я хочу иметь ссылку (якорный тег), которая приведет меня к http://localhost/#/edit/10/step1.

Что нужно положить в ng-href="" и может ли это быть достигнуто без указания идентификатора (10) в ссылке?

<a ng-href="step1">Previous</a>

edit (routing):

.config(["$stateProvider", "$urlRouterProvider", "$httpProvider", ($stateProvider: ng.ui.IStateProvider, $urlRouterProvider: ng.ui.IUrlRouterProvider, $httpProvider: ng.IHttpProvider) => {
        $urlRouterProvider.otherwise("/home");

        $stateProvider
            .state("MyModule", {
                template: "<div ui-view></div>"
            })
            .state("home", {
                url: "/home",
                templateUrl: "App/home.html",
                controller: "homeController as ctrl"
            });

        $httpProvider.interceptors.push("busyHttpInterceptor");
    }]);

состояние (изменить):

            .state("edit", {
                url: "/edit/:id",
                templateUrl: "App/edit.html",
                controller: "editController",
                controllerAs: "ctrl",
                resolve: {                    
                }
            })
  • 0
    Показать, как вы определили маршруты (код JS)
Теги:
routing

1 ответ

0

Я думаю, что вы можете выполнить перенаправление с помощью функции ng-click:

//for the 'state', you can add a new one or edit the existing one depending on your requirement and restirctions
//Add a new one:
.state("edit.action", {
    url: "/edit/:id/:action",
    templateUrl: "App/edit.html",
    controller: "editController",
    controllerAs: "ctrl",
    resolve: {                    
    }
})

//in the html
<a ng-click=goToAction("step1")>Previous</a>

//in the controller 'editController', inject the service '$stateParams' and '$state'
$scope.goToAction = function(action) {
    //get the ':id' from the url
    var currentId = $stateParams['id'];
    $state.go('edit.action', {
        id: currentId,
        action: action
    });
}

Если вы хотите, вы также можете применить регулярное выражение к параметрической части URL:

url: "/edit/{id:[a-zA-Z0-9]*}/:action

Ещё вопросы

Сообщество Overcoder
Наверх
Меню