学习控制器

Understanding Controllers (控制器)

In Angular, a Controller is a JavaScript constructor function that is used to augment the Angular Scope.
When a Controller is attached to the DOM via the ng-controller directive, Angular will instantiate a new Controller object, using the specified Controller’s constructor function. A new child scope will be available as an injectable parameter to the Controller’s constructor function as $scope.

Use controllers to:

  • Set up the initial state of the $scope object.
  • Add behavior to the $scope object.

Do not use controllers to:

  • Manipulate DOM ---- Controllers should contain only business logic. Putting any presentation logic into Controllers significantly affects its testability. Angular has data binding for most cases and directives to encapsulate manual DOM manipulation.
  • Format input ---- Use angular form controls instead.
  • Filter output ---- Use angular filters instead.
  • Share code or state across controllers ---- Use angular services instead.
  • Manage the life-cycle of other components (for example, to create service instances).

在Angular里,控制器就是一个用来增强Scope的JavaScript的构造函数。
当一个控制器通过ng-controller指令被附在DOM上的时候,Angular就会用这个指定的构造函数,初始化一个新的控制器实例。同时,1个子scope会以$scope的名字的变量身份,被注入到新的构造函数里。

这些情况下你应该使用控制器:

  • 设置$scope对象初始化状态的时候;
  • 向$scope对象添加行为的时候。

这些情况你不应该使用控制器:

  • 操纵DOM的时候 ---- 控制器里就应该只有业务逻辑。任何把展示的逻辑放进控制器的行为,都会大大影响其可测试性。几乎所有情况下,操纵DOM的操作都可以被数据绑定和指令完成;
  • 格式化输入 ---- 用Angular提供的表单控制吧;
  • 过滤输出 ---- 用Angular的过滤器不是很棒?
  • 在控制器间共享代码和状态 ---- 用Angular的服务好吗?
  • 管理其它组件的生命周期 (比方说创建服务实例)


学习控制器

时间: 2024-10-13 10:08:06

学习控制器的相关文章

ThinkPHP学习——控制器_Action参数绑定

参数绑定是通过直接绑定URL地址中的变量作为操作方法的参数,可以简化方法的定义甚至路由的解析. 参数绑定功能默认是开启的,其原理是把URL中的参数(不包括模块.控制器和操作名)和操作方法中的参数进行绑定. 要启用参数绑定功能,首先确保你开启了URL_PARAMS_BIND设置: 'URL_PARAMS_BIND' => true, // URL变量绑定到操作方法作为参数 按变量名绑定 默认的参数绑定方式是按照变量名进行绑定,例如,我们给Blog控制器定义了两个操作方法read和archive方法

Thinkphp学习——控制器_控制器定义

一般来说,ThinkPHP的控制器是一个类,而操作则是控制器类的一个公共方法. 下面就是一个典型的控制器类的定义: <?php namespace Home\Controller; use Think\Controller; class IndexController extends Controller { public function hello(){ echo 'hello,thinkphp!'; } } Home\IndexController类就代表了Home模块下的Index控制器

十八、EnterpriseFrameWork框架核心类库之Winform控制器

回<[开源]EnterpriseFrameWork框架系列文章索引> EFW框架源代码下载:http://pan.baidu.com/s/1qWJjo3U EFW框架中的WinController控制器可以说是整个Winform版中最具有价值的地方,能够熟练使用它的话,可以让你写得代码结构清晰不知多少倍,真正的做到了CS开发的界面层与逻辑层的完全隔离:更重要的是改变了你写界面代码的思维,让你一次性写出功能完善的代码,真的,传统的那种事件驱动的方式编码会让你的代码变得越来越臃肿,就算你懂得不断重

十九、【.Net开源】EFW框架核心类库之WCF控制器

回<[开源]EFW框架系列文章索引> EFW框架源代码下载V1.1:http://pan.baidu.com/s/1qWJjo3U EFW框架实例源代码下载:http://pan.baidu.com/s/1o6MAKCa 只有当你需要开发三层架构的系统并利用WCF作为系统的中间件,那么就需要使用WCF控制器.EFW框架中的Wcf控制器分为两个部分WcfClientController和WcfController,两者利用Wcf服务进行通讯,其中WcfClientController的功能与上章

iOS开发笔记之Runtime实用总结

前言 runtime的资料网上有很多了,部分有些晦涩难懂,我通过自己的学习方法总结一遍,主要讲一些常用的方法功能,以实用为主,我觉得用到印象才是最深刻的.另外runtime的知识还有很多,想要了解更多可以一些翻译的官方文档(有点枯燥) 什么是runtime? runtime 是 OC底层的一套C语言的API(引入 <objc/runtime.h> 或<objc/message.h>),编译器最终都会将OC代码转化为运行时代码,通过终端命令编译.m 文件:clang -rewrite

Daily Scrumming* 2015.10.27(Day 8)

一.总体情况总结 今日项目总结: 前后端同一了API设计以及API权限认证.用户状态保存的开发方案 API以及后端模型已经开始开发,前端UEditor开始学习,本周任务有良好的起步 前后端完成分工,后端根据API分工,前端根据页面分工,分工具有松耦合性,开发效率较高 大家进度不错,技术上遇到问题就直接沟通,交流是提升团队效率的秘诀 后端任务总结: 后端任务总结,对建立的模型进行部分修改,增加数据验证,搭建路由 二.今明两天任务表 Member Today’s Task Tomorrow’s Ta

3.AngularJS必备知识

AngularJS是一个WEB应用框架. 本节我们会学习控制器(控制数据),会学习作用域(连接控制器和用户界面),用户界面又叫做视图,通过模板和作用域来创建交互视觉效果.另外,我们还会学习其他的特性比如如何使用过滤器来转换数据.如何构建并使用指令来增强现有的HTML元素,以及如何从外部数据源中加载并保存应用数据. 3.1 AngularJS初探 一个典型的AngularJS应用的组件: 3.1.1 视图和模板:描述内容 模板:是一块HTML内容,就是带有指令或者表达式的HTML,可以在需要的时候

《Yii2 By Example》第2章:创建一个简单的新闻阅读器

第2章 创建一个简单的新闻阅读器 本章内容包含:创建第一个控制器,用于展示新闻条目列表和详情:学习控制器和视图之间的交互:自定义视图的布局. 本章结构如下: 创建控制器和动作 创建用于展示新闻列表的视图 控制器是如何将数据传送到视图的 例子--创建一个控制器,展示静态新闻条目列表和详情 将常用视图内容分割成多个可复用视图 例子--在视图中进行部分渲染 创建静态页面 在视图和布局之前共享数据 例子--根据URL参数更换布局背景 使用动态模块布局 例子--添加展示广告信息的动态盒 使用多个布局 例子

thinkphp5.0和thinkphp3.2的区别不同之处

先看目录结构: thinkphp 5.0的目录结构, 文档:https://www.kancloud.cn/manual/thinkphp5/118008 project 应用部署目录 ├─application 应用目录(可设置) │ ├─common 公共模块目录(可更改) │ ├─index 模块目录(可更改) │ │ ├─config.php 模块配置文件 │ │ ├─common.php 模块函数文件 │ │ ├─controller 控制器目录 │ │ ├─model 模型目录 │