小人儿的笔记(AngularJS)--03
2017-02-06 11:49
211 查看
表达式
1.由$parse服务解析,而不是JS中的eval函数;2.相对于作用域,而不是全局;
3.可以写在HTML中,使用{{expr}};
4.容错性:如果有错就不解析;
5.不支持自增、自减、位运算符等;
6.不允许流程控制语句、异常语句;
7.支持过滤器;
表达式手动解析
<body ng-controller="ExpressController"> <input type="text" ng-model="exp"> <h3>result:<span ng-bind="result"></span></h3> </body>
angular.module('myApp', []) .controller( 'ExpressController', ['$scope', '$parse',function($scope,$parse){ //手动解析要先注入$parse,对要解析的数据进行$watch监控 $scope.$watch("exp",function(nv,ov,sc){ try{ //回掉函数中通过$parse解析得到一个函数,nv就是$scope.exp var pf=$parse(nv); //通过函数的执行得到结果 $scope.result=pf(sc); } catch(e){ $scope.result=""; } }); }]);
注意:
系统中太多的监听会影响系统的性能,我们可以在满足某些条件后,取消监听,方法为:
var watch=$scope.$watch('exp', function(newValue, oldValue) {}); 8cfb watch();//加上小括号去掉监听。
相关文章推荐
- 小人儿的笔记(AngularJS)--04
- 小人儿的笔记(AngularJS)--02
- 从0开始学angularjs-笔记03
- 小人儿的笔记(AngularJS)--01
- WPF学习笔记(03) - 华丽的HelloWorld
- FreeBSD学习笔记03-默认搜索路径
- 《HTML & XHTML权威指南》的学习笔记03 -- 第五章.分隔线,图像,多媒体
- Dotnet B/S 架构学习笔记_03(2008-11-18)
- TGE学习笔记03 - 透明纹理
- C# 学习笔记(Class) - 03
- ICE笔记(03):客户端Slice到C++映射
- 笔记 03_传智播客hibernate教程_hibernate入门案例的代码优化
- LUA 学习笔记 03
- C/C++ 学习笔记[03].去掉C风格的注释
- 【JAVA学习笔记】03 分支语句
- 画个小人儿之建造者模式学习笔记[C++版]
- PagedGeometry 笔记03
- 如何顺畅地进行成本核算与业务结算?(上)(野生项目笔记03)
- Java笔记—03
- 【JAVA学习笔记】03 分支语句