Angular playground
HTML
<script src="http://code.angularjs.org/1.2.14/angular.js"></script>
<div ng-controller="MainCtrl">
<input type="text" ng-model="func" />
<ul>
<li ng-repeat="msg in messages">{{msg}}</li>
</ul>
{{test}}
<div>
<div *ngFor="el in elems">
{{el}}
</div>
</div>
</div>
JavaScript
var module = angular.module("myApp", []);
module.config(function ($provide) {
// decorate - wrap $parse to understand jQuery text() getter/setter
$provide.decorator('$parse', function($delegate) {
return function(expression) {
var parsed = $delegate(expression);
// getter
wrapper = function(scope, locals) {
var val = parsed(scope, locals);
return angular.isFunction(val) && val.getset
? val.call(scope)
: val;
};
// setter
wrapper.assign = function(scope, value) {
var val = parsed(scope);
if (angular.isFunction(val) && val.getset)
val.call(scope, value);
else if (parsed.assign)
parsed.assign(scope, value);
};
return wrapper;
};
});
});
module.controller("MainCtrl", function($scope) {
$scope.messages = ["Init"];
$scope.test = "foo";
$scope.func = function (val) {
if (val != null)
$scope.test = val;
else
return $scope.test;
};
$scope.func.getset=true;
$scope.elems = [1,2,3,4,5,6];
});