Я пытаюсь редактировать строку данных в таблице. Когда я нажимаю на строку, она выдает требуемое представление, но оно не может вытащить связанные данные для редактирования. Может кто-нибудь попытаться найти проблему. Я предполагаю, что это связано с $ routeParams и связанным индексом строки таблицы. Добавил мой плункер.
app.controller("editController", ["$scope", "$location", "$routeParams", "listService", function($scope, $location, $routePartam, listService) { $scope.data = listService.getDepartments(); //$scope.id = $routeParams.id; //alert($route.current.params.id);
//alert("test"+ "$routeParams"); //$scope.Item=listService.getDepartments()[parseInt($routeParams.id)]; $scope.Item=listService.getDepartments()[0]; // saving an existing items $scope.save = function() { listService.editDepartments(0,{dialnumber:$scope.Item.dialnumber,department:$scope.Item.department,level:$scope.Item.level});
//listService.editDepartments(parseInt($routeParams.index),{dialnumber:$scope.Item.dialnumber,department:$scope.Item.department,level:$scope.Item.level}); //Saving code $location.path("/Items"); }; $scope.cancel = function() { $location.path("/Items");
};
вы почти получили это... это была опечатка:
function($scope, $location, $routePartam, listService) {
видеть? он говорит $routePartam
вместо или $routeParams
, поэтому ваш код для editController может быть таким, проверьте первую строку:
function($scope, $location, $routeParams, listService) {
$scope.data = listService.getDepartments();
//$scope.id = $routeParams.id;
//alert($route.current.params.id);
//alert("test"+ "$routeParams");
//$scope.Item=listService.getDepartments()[parseInt($routeParams.id)];
var id = $routeParams.id;
$scope.Item=listService.getDepartments()[id];
// saving an existing items
$scope.save = function() {
listService.editDepartments(id,{dialnumber:$scope.Item.dialnumber,department:$scope.Item.department,level:$scope.Item.level});
проверить фиксированный плункер: http://plnkr.co/edit/oZrQaPUNTOOxDt8kqU5t?p=preview