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

link中的scope到底是哪个scope

link函数中注入的scope是指令的scope还是controller的scope或者是module的scope?如果说是指令的scope,为什么又能调controller的属性和函数?

正在回答

5 回答

这个问题有点说来话长了,首先说下前提,我个人理解,在ng中,一个ng-app有一个$rootScope,每一个controller有自己的$scope,同时如果controller嵌套的话,$scope也会有parent的概念。(js的原型继承)

这样的话,指令中的scope是谁的scope就取决于它是在哪个controller中调用的了。比如你图中的例子,它是在MyCtrl这个controller中被实例化的,那么它的scope就是MyCtrl的scope。

另外我没有测试过,感觉,如果是在MyCtrl中再嵌套一个controller叫MyCtrl2,在这个controller中实例化这个指令,基于原型继承,应该也是调用MyCtrl中的loadData。

1 回复 有任何疑惑可以回复我~
#1

桃夭_0002 提问者

非常感谢!
2016-07-16 回复 有任何疑惑可以回复我~
#2

nickylau82 回复 桃夭_0002 提问者

不客气。互学互助。我也刚开始学ng
2016-07-16 回复 有任何疑惑可以回复我~
#3

SvenAs 回复 桃夭_0002 提问者

我试了一下,把MyCtrl2放在MyCtrl里面,他还是调用自己的方法
2016-07-21 回复 有任何疑惑可以回复我~
#4

SvenAs 回复 nickylau82

关于第二个例子 指令与指令之间的交互,你是怎么看待superman中的controller的?他是不是相当于在superman中创建的controller。这个我不是很理解。求教。
2016-07-21 回复 有任何疑惑可以回复我~
#5

nickylau82 回复 SvenAs

这个我倒没有想那么多。。我是按照大漠穷秋的思路,单纯的把controller和link看作两个类似的对指令这个“dom”元素的属性设置。 因为从语法和用法上来看,controller赋值的其实是个构造函数。至于是不是相当于在Superman中创建的controller我没有深究过。因为我感觉controller除了相当于创建了作用域之外好像没有实际意义?
2016-07-21 回复 有任何疑惑可以回复我~
#6

SvenAs 回复 nickylau82

感谢回答!我明白你的意思了
2016-07-22 回复 有任何疑惑可以回复我~
查看3条回复

来的晚了,也有同样的疑问,谢谢提问者,也谢谢回答者!

0 回复 有任何疑惑可以回复我~

感谢各位朋友的回复,@nickylau82是最早回复的,并且回答的也没问题,所以把最佳给了他。

0 回复 有任何疑惑可以回复我~

好像和controller里的scope是同个,可以控制台输出下,这两个scope的id号是一样的。

0 回复 有任何疑惑可以回复我~

你指令放在哪个controller下面,就是哪个controller的scope。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
AngularJS实战
  • 参与学习       205512    人
  • 解答问题       1158    个

一起学习AngularJS的基础教程,通过实例学习并学会AngularJS

进入课程

link中的scope到底是哪个scope

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信