第六章 表达式
来源:互联网 发布:英雄800和英雄100知乎 编辑:程序博客网 时间:2024/06/06 20:04
前面使用的{{ }}符号将一个变量绑定到$scope上的本质就是一个表达式。
表达式和eval()很相似,但有以下不同特性:
- 所有表达式都在其所属作用域内部执行,并有访问本地$scope的权限
- 不会抛出异常
- 不允许有流程控制功能(if/else)
- 可以接受过滤器和过滤器链
解析AngularJS表达式
尽管AngularJS会自动解析表达式,但有时也可以手动解析。AngularJS通过$pars这个内部服务来进行表达式运算。代码如下:
<!doctype html><html> <head> <script src="angularJs/1.2.13/angular.js"></script> </head> <body ng-app="myApp"> <div ng-controller="MyController"> <input ng-model="expr" type="text" placeholder="Enter an expression" /> <h2>{{ parseValue }}</h2> </div> </body> <script> angular.module("myApp", []) .controller('MyController', function($scope, $parse) { $scope.$watch('expr', function(newVal, oldVal, scope) { if (newVal !== oldVal) { // 用该表达式设置parseFun var parseFun = $parse(newVal); // 获取经过解析后表达式的值 $scope.parseValue = parseFun(scope); } }); }); </script></html>
上述代码中$watch函数有三个参数:$watch(watchFn, watchAction, deepWatch)
watchFn:带有AngularJS表达式或函数的字符串,它会返回被监控数据模型的当前值
watchAction:函数或者表达式,当为函数时,传入三个参数,分别是新值,旧值,作用 域对象的引用。
deepWatch:是否深度监控,当为true时,不仅仅监控对象的简单的值, 也会监控对象 属性的变化。
$watch 函数会返回一个函数,当你不再需要接收变更通知时,可以用这个返回的函数注销监控器。
插值字符串
0 0
- 第六章 表达式
- 第六章 表达式
- C++程序设计语言--第六章:表达式和语句
- 第六章 正则表达式的构建
- 第六周--后缀表达式
- 第六周 后缀表达式
- 第六课、正则表达式
- 《TC++PL》第六章笔记——表达式和语句
- java作业04(第六章 字符串和正则表达式)
- 第六章EL和JSTL> 1-el表达式
- 第六章EL和JSTL> 3-el表达式运算符
- 第六章EL和JSTL> 1-el表达式
- 第六章EL和JSTL 1-el表达式(2)
- python开发技术详解---第六章:字符串与正则表达式
- 第六章第六题
- 第六章
- 第六章
- 第六章
- 关于tomcat注册成一个服务,并修改启动类型
- 水仙花数
- 设置ListView的分割线及分割线的高度
- mui.ajax与服务器(SpringMVC)传输json数据
- 第4章 作用域
- 第六章 表达式
- 第5章 首次登录与在线求助man page
- IOS判断是否有效银行卡号
- 第6章 Linux的文件权限与目录配置
- 解决android源码repo更新时出现的UnicodeDecodeError 问题
- 第7章 Linux文件与目录管理
- volatile,extern,struct,union,enum
- 磁盘分区、目录树和文件系统
- 第8章 Linux磁盘与文件系统管理