JSFiddle - React, Tailwind, and code Playground
HTML
<div ng-app="app">
<div ng-controller="ctrl">
<div>
<h1>I am the parent scope.</h1>
{{page}}
</div>
<ol class="pageElements">
<li ng-repeat="pageElement in page.pageElements">
<!-- page-element directive uses $compile
to create elemented based on type -->
<div>
<h2>I am still the parent scope, only that I watch one element</h2>
{{pageElement}}
</div>>
<div page-element my-page-element="pageElement"></div>
</li>
</ol>
</div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.14/angular.min.js"></script>
<script>
angular.module('app', [])
.controller('ctrl', function($scope) {
$scope.page = {"pageElements":[{"id":1721,"pageId":861,"position":0,"type":"Paragraph","text":"<p>Who is the captain of the Enterprise NX-01?</p>"},{"id":1722,"pageId":861,"position":1,"type":"Question","question":{"id":1664,"type":"ShortAnswer","successMessage":"You really know your captains!","hints":[],"answerAllowance":"SINGLE","minimumNumberOfKeywords":1,"keywords":[{"id":45394,"text":"John Archer","accuracy":0,"ignoreCase":false}]}},{"id":2786,"pageId":861,"position":2,"type":"Paragraph","text":"<p>fafadffadfda</p>"}]};
})
.directive('pageElement', function() {
return {
template: '<div><h3>I am the directive scope. You can change the "text" property here to see it propagate.</h3><input ng-model="pageElement.text"><p>{{pageElement.text}}</p><div>{{pageElement}}<div></div>',
scope: {
pageElement: '=myPageElement'
...