JSFiddle - React, Tailwind, and code Playground
HTML
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.0.3/angular.js"></script>
<div ng-app="myApp">
<div ng-controller="MainCtrl">
<ul ng-repeat="exam in exams">
<li ng-repeat="question in exam.questions">
<p>{{question.question}}</p>
<div ng-switch on="question.type" >
<div ng-switch-when="openquestion">
<textarea ng-model="question.answer"></textarea>
</div>
<ul ng-switch-when="mcquestion">
<li ng-repeat="(key, value) in question.answers">
<label>
<input ng-model="$parent.question.answer" value="{{value}}" type="radio"/>
{{key}} ) {{value}}
</label>
</li>
</ul>
</div>
</li>
</ul>
<hr/>
{{exams | json}}
<pre>{{myOutput | json}}</pre>
</div>
</div>
JavaScript
/* ANGULARJS BASIC TEMPLATE 1.0.3 */
var app = angular.module('myApp', []);
app.controller('MainCtrl', function($scope) {
$scope.exams = [{
"title" : "Some fancy title",
"owner" : "John Smith",
"questions" : [
{"type" : "openquestion", "question" : "Is cheese yummy?", "answer" : "No"},
{"type" : "mcquestion", "question" : "Is cheese yummy?", "answers" : { a: "Yes", b: "No" }, "answer" : "No"}
]
}];
$scope.myOutput.push({$parent.question.answer});
});