Как передать параметр в URL из контроллера с помощью angularjs

0

Я делаю добавление и редактирование на 1 странице. Листинг показан ниже в таблице. Из списка, когда я нажимаю кнопку редактирования, я хочу передать идентификатор этого элемента в URL-адресе. Так что, если случайно обновляется страница, данные остаются в форме редактирования. А также я использую вложенный вид (например: settings.couriers). Мой html

<button class="btn btn-primary btn-xs" ng-click="editCourier({id: x.id})">
                                        <i class="fa fa-pencil"></i>
                                    </button>

Мой controller.js для редактирования

$scope.editCourier = function(id, index) {
        $.ajax({
            'type': "POST",
            'async': false,
            'global': false,
            'url':'settings/editCourier',
            'data': 'id='+id, 
            'dataType': "json",
            'success': function (data) { 
                $scope.formData = data[0];                
            }
        });     
    }

Есть ли выход. пожалуйста помоги. спасибо

  • 0
    мое редактирование работает нормально. Но я хочу передать идентификатор в качестве параметра URL. Так что если я когда-нибудь обновлю страницу, значение останется в поле ввода без изменений
  • 0
    Так что это не SPA с некоторой маршрутизацией и т. Д., Но вы все равно хотите повлиять на URL только в случае нежелательного обновления страницы, когда отображается форма редактирования?
Показать ещё 4 комментария
Теги:

3 ответа

0
Лучший ответ

Изменен мой HTML-код

<button class="btn btn-primary btn-xs" ng-click="editCourier(index)">
                                        <i class="fa fa-pencil"></i>
                                    </button>

Я изменил функцию контроллера.

$scope.editCourier = function(index) {
        $.ajax({
            'type': "POST",
            'async': false,
            'global': false,
            'url':'settings/editCourier',
            'data': 'id='+ $stateParams.id, 
            'dataType': "json",
            'success': function (data) { 
                $scope.formData = data[0];   
                $scope.couriers.splice(index, 1);
                $state.go('statename', {id: $stateParams.id}, {reload: true});             
            }
        });     
    }
0

Вы можете напрямую передать id в функцию editCourier (x.id)

 <button class="btn btn-primary btn-xs" ng-click="editCourier(x.id)">
    <i class="fa fa-pencil"></i>
  </button>

И в контроллере

  $scope.editCourier = function(id, index) {
       console.log(id);//Check here whether the click id is coming or not
}
0

изменение:

<button class="btn btn-primary btn-xs" ng-click="editCourier({id: x.id})">
    <i class="fa fa-pencil"></i>
</button>

чтобы:

<a href="/editCourier/id" />

и в контроллере, получите Id с использованием угловых RouteParams. См. Эту ссылку

Ещё вопросы

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