2015-12-17 4 views
0

я пытаюсь сделать простой CRUD с angularjs и PHP API проблема в angularjsнг-модели не изменяются после сохранения редактирования

У меня есть такой код:

$scope.editData = function(pid) { 
    $scope.hideform = false; 

    $scope.edit = false; 
    $scope.pid = $scope.projects[pid].pid; 
    $scope.title = $scope.projects[pid].title; 
    $scope.pcode = $scope.projects[pid].pcode; 
    $scope.type = $scope.projects[pid].type; 
    $scope.proj_type = $scope.projects[pid].proj_type; 
    }; 
$scope.saveData = function(pid, title, pcode, type2, proj_type){ 
     $http.post("api/getProject.php", 
      {type: "edit", id:pid, title:title, pcode:pcode, type2:type2, proj_type:proj_type}) 
      .success(function(data) { 
       notification(data.success, data.message); 
       $scope.hideform = true; 
     }); 
    }; 

и имеют форму для редактирования данные (кнопка редактирования щелкнул, а затем показать форму редактирования с нг-модели, загруженной на него

как это

<form class="form-horizontal" ng-hide="hideform" ng-submit="saveData(pid,title, pcode, type, proj_type)"> 

<h3 ng-hide="edit">Edit Project:</h3> 
<div class="form-group"> 
<label class="col-sm-2 control-label">PID:</label> 
<div class="col-sm-10"> 
<input type="text" ng-model="pid" ng-disabled="!edit" placeholder="PID"> 
</div> 
</div> 
<div class="form-group"> 
<label class="col-sm-2 control-label">Title:</label> 
<div class="col-sm-10"> 
<input type="text" ng-model="title" placeholder="Title"> 
</div> 
</div> 
<div class="form-group"> 
<label class="col-sm-2 control-label">Pcode:</label> 
<div class="col-sm-10"> 
<input type="text" ng-model="pcode" placeholder="Pcode"> 
</div> 
</div> 
<button class="btn btn-success" ng-disabled="error || incomplete"> 
<span class="glyphicon glyphicon-save"></span> Save Changes 
</button> 
</form> 

скрипт работает, но каждый раз я нажимаю кнопку «Сохранить редактирование», затем нажимаю кнопку «Редактировать» (в каждой строке таблицы), ng-модель на входе формы остается такой же, как последние данные, которые я сохраняю, но другой вход изменяется, например: i редактировать название, когда нажмите редактировать кнопку на другой строке в таблице, просто PCODE изменилась к различным данным ряда, ПТС еще так же, как последние данные я редактировать жаль, если мое объяснение сделать все вы путают Любая помощь будет оценен

здесь изображение, если мое объяснение не ясно Image for explanation

+0

Я не понимаю ваш вопрос правильно. Правильно ли работает «Сохранить изменения»? Также вам нужно обновить массив ваших проектов в угловом формате после сохранения данных. –

+0

Сохранить изменения работает правильно, но ng-модель не обновляется , как вы можете видеть на картинке, Название не меняется после сохранения изменений TestingBABIBUS, а затем нажмите «Редактировать» в Testing3 row :) –

ответ

0

Эта проблема решена с помощью

$scope.selectedProject = $scope.projects[pid]; 

так editData функция выглядит следующим образом

$scope.editData = function(pid) { 

     $scope.hideform = false; 

     $scope.edit = false; 
     $scope.pid = $scope.projects[pid].pid; 
     $scope.title = $scope.projects[pid].title; 
     $scope.pcode = $scope.projects[pid].pcode; 
     $scope.type = $scope.projects[pid].type; 
     $scope.proj_type = $scope.projects[pid].proj_type; 

     $scope.selectedProject = $scope.projects[pid]; 
    }; 

и нг-модели (на каждом входе) необходимо изменить как этот

<input type="text" ng-model="selectedProject.pid" ng-disabled="!edit" placeholder="PID"> 

вместо этого

<input type="text" ng-model="pid" ng-disabled="!edit" placeholder="PID"> 

Теперь каждая ng-модель изменила каждую кнопку редактирования, нажав после сохранения Щелчок по кнопке изменения :) Спасибо!

Смежные вопросы