У меня есть страница в моем приложении, в которой перечислены серии вопросников. Под каждым вопросником имеется форма согласия, посредством которой пользователь может выбрать, кто может просмотреть эту конкретную анкету.
Я не совсем уверен, как самостоятельно обрабатывать несколько флажков для каждой отдельной формы. Я поместил свой образец кода на плункер для просмотра всем.
app = angular.module('app', [])
.controller('QuestionnaireController', function($scope){
$scope.questionnaires = [
{id : 1, name : "Questionnaire One"},
{id : 2, name : "Questionnaire Three"},
{id : 2, name : "Questionnaire Four"},
];
$scope.relationships = [
{id : 1, name : "Joe Bloggs", role : "Parent"},
{id : 2, name : "John Doe", role : "Teacher"},
{id : 3, name : "Jane Doe", role : "Friend"}
];
$scope.submitConsent = function(){
//process form...
}
});
http://plnkr.co/edit/b5rr8CC9xhcaLC6MNNig?p=info
Любая помощь приветствуется :)
Если вы хотите отправить свою форму на сервер. Вы должны указать имя поля ввода типа. Например, используйте "идентификаторы". И вы добавляете атрибут value к флажку с идентификатором отношения.
<form class="form-group" ng-submit="submitConsent()">
<label for="" ng-repeat="relation in relationships">
<input type="checkbox" name="ids" value="{{relation.id}}"/>
{{relation.name}} ({{ relation.role }})<br/>
</label>
<input type="submit" name="Submit Questionnaire" />
</form>
На стороне сервера вы получите массив идентификаторов и обработайте этот массив в зависимости от того, какой серверный технологии вы выберете.
Если вы хотите получить идентификаторы в угловом приложении. Сделайте следующее.
<form class="form-group" ng-submit="submitConsent()">
<label for="" ng-repeat="relation in relationships">
<input type="checkbox" value="{{relation.id}}" ng-click="relationSelected(relation.id)"/>
{{relation.name}} ({{ relation.role }})<br/>
</label>
<div>{{ids}}</div>
<input type="submit" name="Submit Questionnaire" />
</form>
В javascript,
$scope.ids = [];
$scope.relationSelected = function(id) {
$scope.ids.push(id);
}