为了账号安全,请及时绑定邮箱和手机立即绑定

请问该如何利用AngularJS绑定两个控制器并变量赋值?

请问该如何利用AngularJS绑定两个控制器并变量赋值?

凤凰求蛊 2019-09-02 09:05:16
如何利用AngularJS绑定两个控制器并变量赋值
查看完整描述

4 回答

?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

angularjs不同控制器中的变量怎么使用
最简单的让控制器之间进行通信的方法是通过scope的继承。假设有两个控制器Parent、Child,Child 在 Parent 内,那Child 可以称为子控制器,它将继承父控制器Parent的scope。这样,Child就可以访问到Parent的scope中的所有函数和变量了。
需要注意的是,由于scope的继承也是基于Js的原型继承,如果变量是基本类型的,那在Child中的修改(写),有可能会导致Parent中的数据变脏。



查看完整回答
反对 回复 2019-09-07
?
千万里不及你

TA贡献1784条经验 获得超9个赞

有时需要两个controller相互通信,我学习到的两个controller之间的通信是:父级controller通过广播向子controller传递信息,而子controller通过冒泡向父级controller传递信息。假如不是两个controller的话,可以构造一个父级controller,然后通过它来广播信息。还有一种是通过工厂模式来注册一个服务,通过服务来传递信息。而所说的冒泡和广播就是angularjs的$emit和$broadcast,通过这两种方法的话,要绑定事件,才可以进行广播或者冒泡。
下面这种是$emit和$broadcast

假如是父级controller和子controller的通信的话,也可以用$watch()来监控你要的信息。不过只能子级的监控父级。$watch("tag",function(){});tag是你要监控的变量了。

查看完整回答
反对 回复 2019-09-07
?
浮云间

TA贡献1829条经验 获得超3个赞

举例:
.controller('a',['scope',$rootScope',function($scope,$rootScope){
$rootScope.u=$scope.username1
}]);
.controller('b',['scope',$rootScope',function($scope,$rootScope){
$scope.username2=$rootScope.u
}]);
说明:通过父子作用域来传递,a中的username1通过子作用域传递给父作用域$rootScope,然后在b中通过父作用域$rootScope传递给b中的username2,从而实现两个controller之间的数据传递

查看完整回答
反对 回复 2019-09-07
  • 4 回答
  • 0 关注
  • 803 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信