angular入门 - 作用域

$watch

监听

$scope.$watch('watchobj',function(newval, oldval, scope){
	// code code code
}, boolean)

参数解析

  • watchobj 是$scope$rootscope作用域上的变量
  • scope参数,可省略,返回变量的作用域范围
  • 参数三boolean:是否为比较实体对象(不是比较引用)
    1. 监听user.username,如果user里字段发生变化,则不被监听
    只是地址的引用 传递:比如:user.name改变则不触发对象变化
    2. 监听user,如果user本身发生变化,则被监听 比如:user={}
    3. 当第三个参数true,则改变对象下的单个字段时(username)也会被监听到
    4. 当watchobj为字符串,任何变化都会被监听
    5.

$interval $timeout

功能等同于setInterval
清除方法:$interval.cancel(name);

$apply

当进行非angular提供的异步操作时候,如果数据不同步,可以使用。

在需要应用的数据后执行$scope.$apply()
// code
// ...
// code

 // 将数据应用起来
$scope.$apply();

$scope $rootScope

子父级之间继承
兄弟间不可访问
根作用域$rootScope 全局可用

控制器事件传播

先在页面中进行 控制器嵌套

函数,对象,字符串

$broadcast

外层控制器(父)向 内层控制器(子) 传播数据,通知所有子级

$scope.causeFun= function () {
		$scope.$broadcast('fatherBc',{username:'Jerry'});
};

$emit

内层控制器(子) 向 外层控制器(父) 传播数据,通知所有父级

$scope.causeFun= function () {
	$scope.$emit('sonBc',{msg:'收到数据'});
}

$on

监听(其他控制器)传播过来的数据

$scope.$on('sonBc', function (event,data) {
    console.log(event);
    console.log(data);
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值