$interpolate(”,false,”) 可以接受3个参数,接受第一个参数的值类型是字符串可以是表达式,例如:
$interpolate第一参数是字符串 可以放表达式,并返回一个函数;
根据例子说明,返回的函数如果newdata()参数为空,只显示监控的emailcon输入的新内容并不能显示{{emailname}}的值,
//如果要显示{{emailname}}的值,就写成newdata({emailname:$scope.emailname})或者newdata(scope)
<body ng-app="myApp">
<div ng-controller="run_email">
<p><input type="text" ng-model="emailname"></p>
<p><textarea ng-model="emailcon"></textarea></p>
<p>{{text}}</p>
</div>
</body>
angular.module('myApp',[]).controller('run_email',function($scope,$interpolate){
$scope.emailname='7713@qq.com'; //设置默认显示出的电子邮件
$scope.emailcon='{{emailname}}'; //电子邮件表达式 赋值给emailcon变量
$scope.$watch('emailcon',function(body,body1,scope){ //这里的body就是 {{emailname}}+即将输入的新值
if(body){ //这里始终都会是true,因为里面有表达式
var newdata=$interpolate(body); //$interpolate第一参数是字符串 可以解析表达式,并返回一个函数
$scope.text=newdata({emailname:$scope.emailname}); //如果newdata()参数为空,只显示监控的emailcon输入的新内容并不能显示{{emailname}}的值,
//如果要显示{{emailname}}的值,就写成newdata({emailname:$scope.emailname})或者newdata(scope)
}
});
});

案例的效果就是,如果只修改电子邮件文本不会更新,但是修改了电子邮件,在输入邮件内容时,才会在文本处同时更新邮件地址和内容。所以触发的对象是邮件的内容。