"프로젝트"에 대한 모델 데이터를 보유하고있는 편집 양식이 있습니다. 프로젝트에는 할당 된 사용자 배열이 있으며 컨트롤러에는 할당 할 수있는 전체 사용자 목록의 다른 배열이 있습니다. 양식에는 현재 모든 availble 사용자가 나열되어 있으며 프로젝트에 이미 지정된 항목을 선택하고 사용자가 체크/체크되지 않은 항목 목록을 수정하는 경우 관련 project.users 속성을 업데이트하십시오.다중 모델로 바인딩 모델
코드에서이다 : http://plnkr.co/edit/e2Rc45mgWDkgdHxz1bz0?p=preview
제어기
angular.module('app', [])
.controller('ProjectsController', ['$scope', function($scope) {
$scope.project = {"projectID":"26","projectName":"project one","projectDescription":"blah",
"users":[{"userFullName":"Ian","userID":"2"},
{"userFullName":"Kevin","userID":"33"},
{"userFullName":"Peter","userID":"32"}]
};
$scope.collaborators = [
{"userID":"2","userFullName":"Ian"},
{"userID":"33","userFullName":"Kevin"},
{"userID":"32","userFullName":"Peter"},
{"userID":"31","userFullName":"Tom"}
];
$scope.updateProject = function(project){
console.log(project);
}
}]);
형태
<form name="editProjectForm" novalidate ng-submit="updateProject(project)" >
<label>Name</label><BR>
<input type="text" ng-model="project.projectName" class="form-control" required><BR><BR>
<label>Description</label><BR>
<textarea ng-model="project.projectDescription" class="form-control" required></textarea>
<br>
<label>Assigned to work on project</label><BR>
<label ng-repeat="collaborator in collaborators">
<input type="checkbox" ng-model="???" /> {{collaborator.userFullName}}
</label>
<BR> <BR>
<input type="submit" value="Update project details" class="btn btn-primary">
</form>
http://plnkr.co/edit/e2Rc45mgWDkgdHxz1bz0?p=preview
감사합니다. 실제로 프로젝트 모델에 "간섭"하고 모든 체크 항목의 배열을 포함하도록 project.users를 업데이트하려고합니다. $ scope.checked를 반복하고 project.users를 다시 빌드 할 수 있지만 데이터 바인딩과 관련하여보다 "각도적인"방법이 있습니까? –
[Plunkr] (http://plnkr.co/edit/4cwlMmyCmrnb46YNY95F?p=preview). 예,'$ scope.project.users'의 형식을 간단한 사용자 ID 배열로 바꿀 것입니다. 그런 다음'$ scope.checked' 모델을 업데이트 할 때'$ scope.projects.users'를 조정하십시오. –