- AngularJS provides $parse service to evaluate expression.
- In a template AngularJS expression are presented in {{ }}.AngularJS uses $parse under the hood to compile link and display the value in the browser.
- $parse() method returns a function for the given expression context.The value of the context can be changes using assign() method.
- In this demo, "We will explore $parse method by using a simple example".
- Below code has code for this demo.Assignment of context can be done in two different way.approach 1 is about using assign() method to change the context value. approach 2 is using the direct $parse method which return a function to handle the context object.(JSBIN)
<!DOCTYPE html>
<html ng-app="myApplication">
<head>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.14/angular.min.js"></script>
<meta charset="utf-8">
<title>$parse Service</title>
</head>
<body ng-controller="MyController">
<input type="text" ng-model="inName" ng-change="parseAgain()" placeholder="Enter some string">
<h1>{{studName}}</h1>
<input type="text" ng-model="inSubject" ng-change="parseOtherWay()" placeholder="Enter some string">
<h1>{{subjectName}}</h1>
</body>
<script>
var myApplication = angular.module("myApplication", []);
myApplication.controller("MyController",
function($scope, $parse) {
var student = {
name: "Sandeep",
subject: "Mathematics"
};
//appraoch 1 :using assign method.
var getName = $parse('name'),
setName = getName.assign;
$scope.parseAgain = function() {
$scope.studName = setName($scope, $scope.inName);
};
//appraoch 2 :using getter method
var getSubject = $parse('subject');
$scope.subjectName = getSubject(student);
$scope.parseOtherWay = function() {
$scope.subjectName = getSubject({
subject: $scope.inSubject
});
};
});
</script>
</html>
- Output of the above code is embedded below using JSBIN.
$parse Service
Related