- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
AngularJS学习(三)——控制器ControllerController介绍?在angular中,controller由JavaScript的构造函数定义,主要用于增强angular的scope。当controller通过ng-controller directive与DOM关联,angular将用指定的controller构造函数实例化一个新的controller对象,同时一个新的child scope将被创建,然后以参数$scope注入到controller中。如果controller使用了controller as a语法,那么控制器实例将会分配给这个属性a。在第一章有讲到这种情况,可以返回去看下,这里就不再写示例了。使用controller的情况:$scope中对象的初始化给$scope中对象增加一些行为不使用controller的情况:操作DOM,controller应该仅仅包含业务逻辑,把显示的逻辑放到controller中会影响它的可测试性,angular有很多数据绑定和封装了DOM操作的directives,完全没必要去操作DOM。格式化输入,用angular form controls代替过滤输出,用angular filters代替在controller直接共享代码或状态,用angular services代替管理其他组件的生命周期(如创建一个service实例)scope对象初始化?通常情况下,你创建一个angular应用时,你需要先设置scope的初始状态。你需要为scope设置一些属性,包含在view中预先声明的model,所有$scope的属性在controller注册的DOM里都是可用的。下面的例子演示如何创建一个controller,并且初始化scope对象。varmyApp = angular.module(myApp, []);myApp.controller(GreetingController, [$scope, function($scope) {$scope.greeting = Hola!; }]);我们创建了一个angular module : myApp,然后调用module的controller方法,给module增加了一个controller构造函数。再看下controller相对应的DOM,greeting属性做了数据绑定,可以显示在controller中的值。divng-controller=GreetingController {{ greeting }}/div给scope对象增加一些行为?为了响应一些事件或者在view中进行一些计算,我们必须为$scope增加一些行为。我们通过为$scope对象增加方法的方式为他增加行为,这些方法可以被template/view调用。下面的示例演示如何为controller增加方法varmyApp = angular.module(myApp,[]);myApp.controller(DoubleController, [$scope, function($scope) {$scope.double = function(value) { return value * 2; };}]);controller一旦被添加到DOM中,该方法就可以在template中被调用divng-controller=DoubleController Two times inputng-model=num equals {{ double(num) }}/divController示例?为了进一步说明angular controller是如何工作的,我们再来一个程序,包含下面一些组件:一个template,包含2个按钮和一条消息一个model,包含字符串spice一个controller,包含2个位spice赋值的函数在模板中的消息包含一个spice model,默认设置为very,点击按钮时给spice赋值,通过data binding的方式自动更新这条消息。?index.htmldivng-controller=SpicyControllerbuttonng-click=chiliSpicy()Chili/buttonbuttonng-click=jalapenoSpicy()Jalape?o/buttonpThe food is {{spice}} spicy!/p/divapp.jsvarmyApp = angular.module(spicyApp1, []);myApp.controller(SpicyController, [$scope, function($scope) {$scope.spice = very;$s
您可能关注的文档
- ACCESS表结构及数据导入到ORACLE探究.doc
- 2016年江苏省普通高中学业水平测试(必修科目)说明与2015年的比较解读说明探究.doc
- Access单选题(复习)探究.doc
- 2016年江苏省泰州市泰兴市中考数学一模试卷含答案解析(word版)探究.doc
- 2016年江苏省徐州市中考化学试题(解析版)探究.doc
- ACCESS复习题探究.doc
- 2016年江苏省中等职业学校学生技能抽查测试探究.doc
- 2016年江苏学业水平测试哲学部分复习提纲探究.doc
- 2016年揭阳市高三物理第二次模拟考试题目和答案探究.doc
- 2016年解直角三角形最详细题型讲解探究.doc
- 2025年网络文学平台版权运营模式创新与版权保护体系构建.docx
- 数字藏品市场运营策略洞察:2025年市场风险与应对策略分析.docx
- 全球新能源汽车产业政策法规与市场前景白皮书.docx
- 工业互联网平台安全标准制定:安全防护与合规性监管策略.docx
- 剧本杀剧本创作审核标准2025年优化与行业自律.docx
- 2025年新能源电动巡逻车在城市安防中的应用对城市环境的影响分析.docx
- 全渠道零售案例精选:2025年行业创新实践报告.docx
- 2025年网约车司乘纠纷处理机制优化与行业可持续发展报告.docx
- 2025年宠物烘焙食品市场法规政策解读:合规经营与风险规避.docx
- 2025年宠物行业数据安全监管政策影响分析报告.docx
文档评论(0)