angluar 什么是控制器。

1.背景介绍


什么是controller

AngularJS 控制器是常规的 JavaScript 对象。

AngularJS 控制器 控制 AngularJS 应用程序的数据。

在angularJS中,controller是一个javascript函数/类,用于操作作用域中,各个对象的初始状态以及相应的行为。

2.知识剖析

在HTML中,绑定ng-controller的那个DOM节点内的所有子标签,将会是当前controller的作用域。

在大型项目中,如果HTML DOM 中有多个作用域,这时你就需要知道你使用的 scope 对应的作用域是哪一个。

二、多controller的实现

我们知道,angularJS中view层解析是通过controller的作用域来将$scope对象解析成相应的内容,因此我们可以在同一个界面上划分不同的模块,通过不同的控制器控制不同的模块来进行开发,这样通过划分模块的开发方式,对今后维护代码带来了便利。

3.常见问题

controller之间的数据该如何传输

4.解决方案

使用service实现controller之间的数据传输

在之前的例子我们提到,controller是相对独立的,两个controller之间,内存是不共享的,同级DOM下,两个controller是无法互相访问其中的属性或者方法的。

那么,在实际项目中,我们会有很多的页面和控制器,不同页面下的controller之间有时候是需要传输数据的,之前我们学习了localStorage,用于页面之间的传参。

其实,官方建议页面之间通过service互相访问。

5.编码实战

问题1.在controller中嵌套controller会出现什么样的问题?

首先,我将原来页面中两个控制器所在的div外面又套了一个控制器,添加了1个变量,并将其余两个控制器中的同名变量删除。

由此可见,controller的作用域跟js作用域相似。

注意:在大型项目中,为了代码规范,很少会使用这种方法,同时这种行为很危险!

6.扩展思考

如何使用angular中的Service服务在多个controller之间的进行数据传输?

7.提问。

1.controller对应的是什么。

每一个controller对应的都是自己控制的一块视图,只可以控制这个视图内的htnl元素。

2.为什么有时候controller不起作用

这个涉及的可能比较多,ng-app未定义,或者重复定义了,controller需要控制的东西在controller之外,对应的不是当前的controller。

3.controller直接的数据传输用几种方法。

这个我还没有具体的了解过,可能还是需要完了之后了解一下。现在还没办法回答上来。

猜你喜欢

转载自blog.csdn.net/qq_41778967/article/details/80769819
今日推荐