angularjs怎么使用controller控制js

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了angularjs怎么使用controller控制js相关的知识,希望对你有一定的参考价值。

1,利用作用域继承的方式。即子控制器继承父控制器中的内容
2,基于事件的方式。即$on,$emit,$boardcast这三种方式
3,服务方式。写一个服务的单例然后通过注入来使用
参考技术A 控制js?这话确定没毛病

AngularJs学习笔记(慕课网)

1. Controller使用过程中的注意点

  1. 不要试图去复用Controller, 一个控制器一般只负责一小块视图
  2. 不要在Controller中操作DOM, 这不是控制器的职责. 封装在指令里. 
  3. 不要在Controller中做数据格式化, ng有很好用的表单控件
  4. 不要在Controller里面做数据过滤操作, ng有$filter服务
  5. 一般来说, Controller是不会互相调用的, 控制器之间的交互会通过事件进行  ---> 这是强耦合

2. 

<html ng-app>
    <div>
        <input ng-model="greeting.text"/>
        <p>{{greeting.text}}, Angular</p>
    </div>
    ....
    <script src="js/angular-1.3.0.js"></script>
<html>

则p标签中的值会随着input里的输入进行改变. 

启动后, 会找ng-app中的指令. 找到ng-model后会生成greeting.text数据模型, 这个模型挂载scope根目录下, 这样所有的{{greeting.text}}都可以获得其值

 

3. Angularjs的MVC是借助于$scope实现的

作用域也是有层次结构的, 如果在内层作用域中没有找到值则会向上去找, 类似JS中的原型查找

 

4. 关于$scope

  1. $scope是一个POJO(Plain Old JavaScript Object)
  2. $scope提供了一些工具方法$watch()/$apply()
  3. $scope是表达式的执行环境(或者叫作用域)
  4. $scope是一个树形结构, 与DOM标签平行
  5. 子$scope对象会继承父$scope上的属性和方法
  6. 每一个Angular应用只有一个根$scope对象(一般位于ng-app上)
  7. $scope可以传播事件, 类似DOM事件, 可以向下也可以向上
  8. $scope不仅是MVC的基础, 也是后面实现双向数据绑定的基础
  9. 可以用angular.element($0).scope()进行调试
  10. $scope的生命周期: Creation->Watcher registration->Model mutation->Mutation observation->Scope destruction

 

以上是关于angularjs怎么使用controller控制js的主要内容,如果未能解决你的问题,请参考以下文章

AngularJs(五)从Controller控制器谈谈$scope作用域

生活大爆炸神奇的angularJS--controller控制器的作用

Angularjs 控制器controller的作用

AngularJs学习笔记(慕课网)

AngularJS表达式无法与添加控制器一起使用

AngularJS 纯 ng-controller 生命周期钩子