Altering Json Objects Load, Edit & Save (10.6)

http://angularjs.org/ 10.6 example

HTML

<script type="text/javascript" src="http://docs-next.angularjs.org/angular-0.10.6.min.js" ng:autobind></script>

<div ng:controller="TestCtrl" ng:app>
    <button ng:click="loadAnswers()">Load answers</button>
    <button ng:click="addAnswer()">Add answer</button>
<p>&nbsp;</p>
    <ul>
        <li ng:repeat="answer in json_object_decoded.answers">
           <input type="text" name="answer.text" ng:model="answer.text" />
           <input type="radio" name="answer.correct" ng:model="answer.correct"  ng:change="updateAnswers($index)" ng:format="boolean" ng:checked="{{answer.correct}}"  />
        </li>
    </ul>
    <p>&nbsp;</p>
    
    
<p>Result:     
    <span ng:bind="json_object_decoded"></span>    </p>
    
    
    <button ng:click="submit()">Save changes</button>
</div>

<br />
<br />

JavaScript

TestCtrl = function($route, $location) {
    this.updateAnswers = function(idx) {
        angular.forEach(this.json_object_decoded.answers, function(answer, i) {
          answer.correct = idx === i;
        });
    };
    
    this.$route = $route;
    this.$location = $location;

    this.json_object_decoded = {'answers':[]};
    
    this.loadAnswers = function() {
        // this is loaded from db normally
        var fromServer = angular.toJson({
            'answers': [{'text':'Answer 1','correct':false}, {'text':'Another Answer 2','correct':true}]
        });
        this.json_object_decoded = angular.fromJson(fromServer);
    }

    this.addAnswer = function() {
       // if it is the first value - radio button must be checked
       var correct = false; 
       if(this.json_object_decoded.answers.length == 0)
           var correct = true;
                   this.json_object_decoded.answers.push({'text':'New','correct':correct});
    }

    this.submit = function() {
    // 2DO: check if at least one value is true (maybe corrupted data from server?)
    }

}