$scope $rootScope $watch 和 $state是什么?

本文深入探讨AngularJS中的关键概念,包括$scope、$rootScope、$watch及$state等方法的作用与应用。通过实例讲解帮助读者理解这些概念如何简化前端开发流程。

1.背景介绍

在平时的编码中,我们总会想着有什么方法能够简化我们的工作流程,让我们只专心于业务逻辑和数据的处理,而angularjs

就为我们程序员实现了这一点。$scope $rootScope $watch 和 $state就是里面的几个方法,今天着重跟大家讨论一下这

几个方法

2.知识剖析

$scope

$scope在angularjs中,你可以把它理解成作用域,每个不同的controller,都具有它不同的作用域,所以

controller不同,他们的scope是不同的。

当你在 AngularJS 创建控制器时,你可以将 $scope 对象当作一个参数传递:{{carname}}

var app =angular.module('myApp', []);

app.controller('myCtrl',function($scope) {

$scope.carname ="Volvo";

});

当在控制器中添加 $scope 对象时,视图 (HTML) 可以获取了这些属性。

视图中,你不需要添加 $scope 前缀, 只需要添加属性名即可,如: {{carname}}。

如果我们想象js那样,做一个全局变量该怎么办呢?这就要说

到rootScope了。

$rootScope

$rootScope就相当于一个全局作用域,所以我们保存在其中的东西是全局性的,在任一controller之中都能够使用

scope是html和单个controller之间的桥梁,数据绑定就靠他了。rootscope是各个controller中scope的桥梁。

用rootscope定义的值,可以在各个controller中使用。

$watch

相信使用过angularjs的同学都知道,ng中有个比较重要的特点,叫做双向绑定,那么这个双向绑定是如何实现的呢?

当我们在创建出scope下的一个新属性的时候,ng就会主动为我们新属性加上$watch这个方法,这个方法会监听我们

的数据变化,当数据变化之后,就立即把view和scope上数据同步。

$watch(watchExpression, listener, objectEquality);

watchExpression,需要监控的表达式

listener,处理函数,函数参数如下

function(newValue,oldValue, scope)

objectEquality,是否深度监听,如果设置为true,它告诉Angular检查所监控的对象中每一个属性的变化. 如果你希望监控数组的个别元素或者对象的属性而不是一个普通的值, 那么你应该使用它

$state

在ajax技术发展普及之后,因为其不会留下历史记录方便浏览器访问和对于seo不友好的特点,一个新技术应运而生:

路由,$state就是路由中的一项服务。

3.常见问题

Angular这个框架要怎么去学习

4.解决方案

如果你写惯了jQuery手工操作DOM的代码, 刚开始的时候会对angular的代码风格非常不适应。

angular对于js基础不够好的新手确实比较困难,尽量多想一想directive,provider,filter是什么,想通了就知道angular是什么,该怎么写了,在这之前建议花几天时间把js基础先看一遍

简单说就是要先去理解他的原理,工作机制,想一想为什么会有这个东西,怎么工作

5.编码实战

6.扩展思考

$http是什么?怎么用?

$http 是 AngularJS 中的一个核心服务,用于读取远程服务器的数据。

7.参考文献

参考一:angularJS中的$watch方法监听作用域

参考二:AngularJS Scope(作用域)

8.更多讨论

问题

1:$scope和$rootscope的优先级谁高

$scope的优先级高,系统会先查找$scope内的,如果能找到相应的值,就不会再往上查找!

2:$watch 的作用原理?

$watch是一个scope函数,用于监听模型变化,当你的模型部分发生变化时它会通知你。

$watch(watchExpression, listener, objectEquality);

每个参数的说明如下:

watchExpression:监听的对象,它可以是一个angular表达式如'name',或函数如function(){return $scope.name}。

listener:当watchExpression变化时会被调用的函数或者表达式,它接收3个参数:newValue(新值), oldValue(旧值), scope(作用域的引用)

objectEquality:是否深度监听,如果设置为true,它告诉Angular检查所监控的对象中每一个属性的变化. 如果你希望监控数组的个别元素或者对象的属性而不是一个普通的值, 那么你应该使用它

3:$state怎么使用?

使用方法如下


《中文版ATEQ编程手册232通信》是针对ATEQ设备进行MODBUS RTU通信的编程指南,主要涵盖了安全咨询、硬件安装、设备配置、通信设置、命令使用以及功能说明等多个方面,旨在帮助用户更好地理解操作ATEQ设备进行网络通信。手册的安全咨询部分强调了在操作过程中遵循良好做法安全说明的重要性。这包括正确操作设备、防止电气短路、避免静电损伤等,确保在安全的环境下进行设备的编程与维护。在介绍中,我们了解到手册的目的是提供一个清晰的引导,帮助用户熟悉MODBUS RTU协议,这是一种广泛用于工业自动化领域的串行通信协议。该协议基于RS-232串行接口,允许设备之间进行高效的数据交换。基本注意事项部分,手册详细列出了操作设备时应注意的事项,如正确连接硬件、遵循设备的操作规程,以及如何避免可能的通信错误。硬件安装配置部分详细介绍了如何正确安装ATEQ设备,并设置RS232模式,确保设备能够与主设备进行有效的通信。在ATEQ设备的配置中,用户需要设置电台编号、通信速度、平价以及通信端口。电台编号是设备的唯一标识,通信速度关乎数据传输效率,平价(奇偶校验)用于检测数据传输中的错误,而通信端口则是设备与其他设备连接的通道。主机的配置部分则涉及了主设备如何设置与ATEQ设备的通信,包括选择正确的通信端口设置合适的帧结构,以适应MODBUS RTU的对话机制。异步链接的对话机制确保了设备间数据的有序传输。手册的命令部分详细列举了可用于控制读取ATEQ设备的指令,这些命令是实现设备功能的核心。同时,CRC(循环冗余校验)计算部分讲解了如何验证数据传输的准确性,这是防止数据错误的关键步骤。ATEQ设备的功能说明部分介绍了设备的主要功能配置方法,帮助用户了解设备的全部潜能,并指导用户根据实际需求调整设备参数。这份《中文版ATEQ编程手册232通信》是ATEQ设备用户不可或缺的参考资料,它提供了从设备安装到通信配置的全面指导,确保用户能够有效利用MODBUS RTU通信实现设备间的高效交互。通过深入学习实践,用户可以掌握复杂的网络通信技术,提升工作效率,减少故障发生。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值