У меня есть форма редактирования, которая держит данные модели для «проекта». В проекте есть набор пользователей, назначенных ему, и у контроллера есть другой массив всего списка пользователей, который можно назначить. В этой форме в настоящее время перечислены все доступные пользователи, и я хочу отметить те, которые уже назначены проекту, и если пользователь изменяет этот список отмеченных/непроверенных элементов, обновите соответствующее свойство project.users.модель привязки к мульти-checkbox
Кодекс по адресу: 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' на простой массив идентификаторов пользователей. Затем, обновив модель '$ scope.checked', настройте' $ scope.projects.users'. –