zoukankan      html  css  js  c++  java
  • Angularjs 控制器controller的作用

        我们在view中给模型的一个参数name赋值 “hello world” .

    这是一种简单的赋值,我们可以在视图中通过 ng 指令(以ng-开头的指令)实现了简单的赋值,如果遇到复杂的逻辑运算操作,那么视图里是无法执行复杂操作的,这时控制器就派上用场了.

    简单讲:控制器 controller 就是实现视图和模型之间数据传递,方法调用,改变模型等一系列操作,他是javascript函数(也可以看做类或者类型)

    控制器有几点需要注意的地方:

    1.一个控制器最好只包含一个视图的业务逻辑.以后你会看到我们的目录结构Client/scripts/controllers 包含很多个控制器脚本.

    2.控制器之间不存在相互调用,共用的工具方法和不属于控制器的业务单独抽出来做成一个服务,然后在控制器中注入服务来调用.比如请求服务器拿到数据就应该单独做成服务,毕竟有些数据是很多个控制器共用的.

    3.控制器不应该操作DOM.

    4.控制器里不应该做数据过滤,因为angular.js 有强大的filter 过滤器.

    下面我们在 index.html 页面中写一个最简单的控制器 myCtrl

    脚本如下:

            <script type="text/javascript">
    	var myApp = angular.module("YIJIEBUYI" , []).
    	       controller( "myCtrl", function ($scope) {
    	       $scope.name = '一介布衣';
    	});
    	</script>

    首先看到这个控制器监视的应用名 "YIJIEBUYI" ,ng-app可以看做angular.js的一个应用入口.

    通过这个入口我们创建了简单的控制器 "myCtrl"  这时你看到了一个对象 $scope ,这个东西我们会单独开博来说明,这里你就把它当做一个上下文环境.

    它联通了模型和视图,非常重要.我们给$scope对象属性 name 赋值 "一介布衣",那么在视图中如何访问呢?

    <div ng-controller="myCtrl">
    	显示文字,<span ng-bind="name" ></span>
    </div>

    我们在视图中有了angular.js 指令标识 ng-controller ,它指定了控制器名称 "myCtrl" ,而此控制器我们已经在当前页面上实现了脚本.

    span标签通过 ng-bind 绑定了模型中的 name 属性的值.

    通过上面的控制器我们可以看到$scope的name属性已经赋值 "一介布衣",我们运行页面看下效果.

    可以看到控制器里给模型name属性的赋值已经在视图中成功显示出来.

  • 相关阅读:
    《java.util.concurrent 包源码阅读》10 线程池系列之AbstractExecutorService
    《java.util.concurrent 包源码阅读》09 线程池系列之介绍篇
    《java.util.concurrent 包源码阅读》08 CopyOnWriteArrayList和CopyOnWriteArraySet
    《java.util.concurrent 包源码阅读》07 LinkedBlockingQueue
    《java.util.concurrent 包源码阅读》06 ArrayBlockingQueue
    《java.util.concurrent 包源码阅读》05 BlockingQueue
    NewBluePill源码学习 <一>
    深入理解Windows X64调试
    x64 结构体系下的内存寻址
    Windows PAE 寻址
  • 原文地址:https://www.cnblogs.com/ilinuxer/p/5232658.html
Copyright © 2011-2022 走看看