<div ng-controller="ctr">
<div>{{val}}</div>
</div>
<script>
angular.module('app', [])
.controller('ctr', function($scope,$parse){
$scope.con={
a:function(b){
b='1.'+b;
return b;
}
}
$scope.expression='a(b)';
var parseFunc=$parse($scope.expression);
$scope.val=parseFunc($scope.con,{b:2});
});
</script>
这段代码中主要的是这两句
var parseFunc=$parse($scope.expression);
$scope.val=parseFunc($scope.con,{b:2});
$parse() 这里传入的是你需要处理的东西,相当于一个函数,返回的是这样
function(scope, locals) {}
第一个参数scope是$scope.expression所需要运行的环境,locals是你运行环境环境里面所需要的数据。
$scope.expression='a(b)';
var parseFunc=$parse($scope.expression);
$scope.val=parseFunc($scope.con,{b:2});
这两个地方的b是同样的,locals说白了就是传递数据给$scope.expression。
最后你在看看这个大概就能明白了吧,第二个参数可以不用赋值,如果你的$scope.expression已经赋值的话。经过测试,这里的b只能是数字,别的东西会运行出错,所以b如果已经是数字可以不用写locals这个参数了。
<div ng-controller="ctr">
<div>{{val}}</div>
</div>
<script>
angular.module('app', [])
.controller('ctr', function($scope,$parse){
$scope.con={
a:function(b){
b='1.'+b;
return b;
}
}
var parseFunc=$parse('a(4)');
$scope.val=parseFunc($scope.con);
});
</script>
点击查看更多内容
5人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦