Я делаю добавление и редактирование на 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];
}
});
}
Есть ли выход. пожалуйста помоги. спасибо
Изменен мой 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});
}
});
}
Вы можете напрямую передать 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
}
изменение:
<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. См. Эту ссылку