Chapter 10: Safe deep property reference using $parse
HTML
<script src="https://code.angularjs.org/1.3.2/angular.min.js"></script>
<div ng-app="myApp">
<div ng-controller="Ctrl"></div>
</div>
JavaScript
angular.module('myApp', [])
.controller('Ctrl', function($log, $scope, $parse) {
$scope.user = {
address: {
number: 1060,
street: 'W Addison St',
city: 'Chicago',
state: 'IL',
zipCode: 60613,
fullStr: function() {
return this.number + ' ' +
this.street + ', ' +
this.city + ', ' +
this.state + ' ' +
this.zipCode;
}
}
};
//from http data
var n = {name:'dd',age:14 , aName:{i:23,o:'hello'}};
var chartOptionTemplate= '{"name":name, "age":age , "data":[1,2,3,4,5,6] , "obj": {"a": aName , "f": [98,76]} }';
var chartOption = $parse(chartOptionTemplate)(n) ;
$log.log( chartOption );
$scope.$watch('user', function(newUserVal) {
$log.log( $parse('"City: " + address.city')(newUserVal) );
});
$scope.$watch('user', function(newUserVal) {
$log.log($parse('"Address: " + address.fullStr()')(newUserVal));
});
});