AangularJS相关术语
1. 数据模型对象(model object)是指$scope对象。$scope对象又是一个简单的JavaScript对象,其中的属性可以被视图访问,也可以同控制器进行交互。
2. $scope对象是定义应用业务逻辑、控制器方法和视图属性的地方;将应用的业务逻辑都放在控制器中,将相关的数据都放在控制器的作用于中,是非常完美的架构;
3. 作用域:提供观察者以监视数据模型的变化;可以将数据模型的变化通知给整个应用,甚至是系统外的组件,可以进行嵌套,隔离业务功能和数据,给表达式提供运算时所需的执行环境;
4. $scope对象的生命周期处理有四个不同的阶段:
- 创建:在创建控制器或指令时,angular会用$injector创建一个新的作用域,并在这个新建的控制器或指令运行时将作用域传递进去;
- 链接:当angular运行时,所有的$scope对象都会附加或者链接到视图中,包括$scope对象的函数;这些函数($watch函数)将会注册当angular应用上下文发生变化时需要运行的函数;
- 更新:当事件循环运行时,它通常执行顶层对象($rootScope),每个子作用域都执行自己的脏值检测,每个监控函数都会检查变化,如果检测到任意变化,$scope对象就会触发指定的回调函数;
- 销毁:当一个$scope在视图中不在需要时,这个作用域将会清理和销毁自己;
5. 控制器的作用: 控制器在angularJS中的作用是增强视图;用它来给作用域对象设置初始状态,添加自定义行为;
6. 设计良好的应用会将复杂的逻辑放到指令和服务中,通过使用指令和服务,我们可以将控制器重构成一个轻量和易于维护的形式;
7. angular通过$parse这个 内部表达式来进行表达式的运算;(手动解析表达式)
8. 在字符串模板中做差值操作,需要在你的对象中注入$interpolate服务;$interpolate服务时一个可以接受三个参数的函数:
text(字符串):一个包含字符插值标记的字符串;
mustHaveExpression(布尔型):设置为true,当传入的字符串中不含有表达式时会返回null;
trustedContext(字符串):angular会对已经进行过字符串差值操作的字符串通过$sec.getTursted()方法进行严格的上下文转义;
它返回一个函数,用来在特定的上下文中运算表达式;
9. 若要子文中使用不同于{{ }}的符号来表示表达式的开始和结束,可以在$interpolateProvider服务中配置;
angular.module("mainApp ",[]).config(["$interpolateProvider",function($interpolatProvider){
$interpolateProvider.startSymbol('_ _'); //修改标识符开始符号
$interpolateProvider.endSymbol('_ _'); //修改标识符结束符号
}]);