AngularJS 笔记系列控制器和表达式

Posted 加勒比海豹丶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AngularJS 笔记系列控制器和表达式相关的知识,希望对你有一定的参考价值。

控制器:在 Angular 中控制器是一个函数,用来向作用域中添加额外的功能。我们用它来给作用域对象设置初始状态,并添加自定义行为。

使用方法: var app = angualr.module(‘app‘,[]);

      app.controller(‘testController‘,function($scope){

        // do sth here
      })

控制器的嵌套:在整个应用中都会有父级作用域存在,除了孤立作用域以外,所有作用域都通过原型继承而来。他们都可以访问父级作用域。

默认情况下,当 AngularJS 在当前作用域无法找到某个属性时,就会向上寻找,一直追溯到$rootScope,如果最终没有找到,程序会继续运行,但是视图无法更新。

最佳实践:短小精悍,不应在 controller 中过多的操作 DOM 和 数据。复杂的业务逻辑应该放到服务和视图中去。

 

表达式:在 Angular 中,我们通过{{}}向$scope 上绑定变量的写法本质上就是表达式。当用$watch 进行监听时,Angular 就会对函数或表达式进行运算。

解析表达式:Angular 通过$parse 这个内部服务来解析表达式,$interpolate 服务返回一个函数,用以在特定的上下文中运算表达式。

<div ng-controller="MyController">
       <input ng-model="to"
             type="email"
             placeholder="Recipient" />
       <textarea ng-model="emailBody"></textarea>
       <pre>{{ previewText }}</pre>
</div>

 

angular.module(‘myApp‘, [])
       .controller(‘MyController‘, function($scope, $interpolate) {
// 
$scope.$watch(‘emailBody‘, function(body) {

           if (body) {
             var template = $interpolate(body);
             $scope.previewText =
               template({to: $scope.to});
           }
}; }); 

 

 

以上是关于AngularJS 笔记系列控制器和表达式的主要内容,如果未能解决你的问题,请参考以下文章

[angularjs] angularjs系列笔记控制器

[angularjs] angularjs系列笔记过滤器

AngularJS入门学习笔记一

angularjs2 学习笔记 组件

AngularJS的学习笔记

angularjs2 学习笔记 组件