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

Posted 计科e点通

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了生活大爆炸神奇的angularJS--controller控制器的作用相关的知识,希望对你有一定的参考价值。

神奇的angularJS--controller

控制器的作用


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

一、什么是controller

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

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

二、controller的作用域

我上一篇博客中,我写了个控制器,并将name赋值为“菲尔”
[javascript] view plain copy print?
  app.controller('hellot function ($scope) {
  $scope.name = "菲尔";});

   如何将helloCtr|控制器绑定到相应的页面中.
  我们在body使用了ng-controller指令,  因此整个body都成为了helloCtrI的作用范围,因此我们可以将{{name}}写于body的任何地方,假如我们将helloCtr|放置于div中,如:

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

头脑风暴ing...

[htmI] view plain copy print?

  <!DOCTYPE html><html>
  <head lang="en">
  <meta charset="UTF-8"><title></title></head>
  <body ng-app="Hello">
  <p> {{name}}</p>
  <div ng-controller="helloCtr">
  {{name}}</div>
  </body>
  <script src="bower_components/angular/angular.min.js " </script>
  <script src="src/app.js"></script>
  <script src="src/controller.js"></scrip > 
  </html>

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


  我们再来看看结果,发现只出现了一个菲尔

localhost:633 42/T1/ in dex .htm I

 菲尔

  http://blog.csdn.net/ft6302244

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


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


  还有一个{{name}}去哪里了呢,为了更清晰的表示,我们给第一个{{name}加入style如:[htmI] view plain copy print?
  <!DOCTYPE html><html>
  <head lang="en">
  <meta charset="UTF-8"><title></title></head>
  <body ng-app="Hello">
  <p style="background: yellow;height: 20px"></p>
  <div ng-controller="helloCtr
  {{name}}</div>

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

</body>

<script src="bower_components/angular/an
</script>
<script src="src/app.js"></script>
<script src="src/controller.js"></scrip
</html>

看看结果,明白了第一个{{name}}的值为空,
也就是说,helloCtrl并没有给第一个{{name赋

222222
C 介localhost:633 42/T 1/ir
菲尔

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


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

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


  [javascript] view plain copy print?
  app.controller('hellotr function ($scope) {
  $scope.name = "菲尔";});
  app.controller('worldtr function ($scope) {
  $scope.name="hello world" ;
  });
  
  并且在html中绑定worldCtrl
  [htmI] view plain copy print?
  <!DOCTYPE html><html>
  <head lanq="en">

<meta charset="UTF-8">
<title></title>
</head>

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

<body ng-app ="H ello">
<p style="background: yellow;height: 20px" I
controller="worldCtr {{name}}</p>
<div ng-controller="helloCtrl">
{{name}}
</div>
</body>
<script src="bower_components/angular/an
</script>
<script src="src/app.js"></script>
<script src="src/controller.js"></scri
</html>
收藏到代码笔记
这个时候第一个{{name}也就解析成功了
hello world
菲尔

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


我们会发现,不同的controller他们scope对象是不一样的,即使都是用了name这个变量,可以看出controller之间是封闭的,可是有时候我们面对两个模块之间进行数据交互,必然在两个controller之间进行通信,这就涉及到angular中的service操作,我会在下一篇文章进行记录。

  转自:
  http://blog.csdn.net/ft6302244/article/details/42

图片来源|网络

文字来源|网络

编辑排版|白杨

[微焦传媒 出品]

投稿邮箱:1058343106@qq.com


以上是关于生活大爆炸神奇的angularJS--controller控制器的作用的主要内容,如果未能解决你的问题,请参考以下文章

生活大爆炸 百度网盘 下载 1-11季

生活大爆炸版石头剪刀布

生活大爆炸版石头剪刀布

生活大爆炸版石头剪刀布

生活大爆炸版石头剪刀布

Noip 2014 senior 复赛 生活大爆炸版石头剪刀布(rps)