У меня есть небольшое угловое приложение, которое повторяет список объектов project
и позволяет редактировать каждый отдельный объект.Угловое повторное связывание с независимыми объектами
// app.html
<div ng-controller="ProjectsCtrl">
<div ng-repeat="project in projects">
<!-- EDIT -->
<h3>{{ project.id }}</h3>
<h3>{{ project.title }}</h3>
...
<!-- END EDIT -->
<p>
<button class="btn btn-info" ng-click="updateProject(project); showEditProject=true">Edit Project</button>
<button class="btn btn-info" ng-click="showEditProject=false">Cancel</button>
...
</p>
<div class="box row animate-show-hide" ng-show="showEditProject">
<form name="editProjectForm" class="form-horizontal">
<input ng-model="editProject.title" type="text" id="title" name="title" class="form-control" placeholder="Title" required /><br />
...
</form>
</div>
</div>
</div>
// app.js
projectsApp.controller('ProjectsCtrl', function ($scope, $http, ConcernService) {
...
$scope.updateProject = function(obj) {
ConcernService.list('projects/', obj).then(function(){
$scope.editProject = obj;
});
};
Это все работает отлично, но так как каждый объект передается на ng_click
все на editProject
объекты связаны с одной и той же модели. Можно ли разрешить форму открываться, и каждый объект привязан к каждому project
независимо?
Собственно, это отлично работает. Единственная проблема заключается в том, что я показываю детали своих проектов в другом div (см. Править). Если я отредактирую детали, модель проекта в этом div также изменится и не будет сброшена, когда я нажму «отменить редактирование». –
Если вы хотите отменить сброс значения и сохранить привязку с дополнительными тегами Div, вам нужно будет сохранить копию исходного значения и повторно назначить значение обратно объекту проекта, если редактирование отменено. Было бы проще выполнить это в области ng-repeat. – rgaskill