据我所知,基本上scope
是一个控制器的实例.
每次我声明控制器scope
都可用于该控制器.
但那么为什么指令具有scope
链接功能呢?
我没有为指令声明任何控制器.
那为什么link
功能scope
呢?任何的想法 ?
来自doc:
范围:指令用于注册手表的范围.
您可能也有兴趣了解$ scope和scope之间的差异.
所有指令都有与之关联的范围.他们使用此范围来访问模板和链接功能中的数据/方法.默认情况下,除非明确设置,否则指令不会创建自己的范围.因此,指令使用其父作用域(通常是控制器)作为它们自己的作用域.
但是,AngularJS允许我们通过传递称为指令定义对象的配置对象来更改指令的默认范围.指令定义对象 - 让我们将其称为DDO - 是一个简单的JavaScript对象,用于配置指令的行为,template..etc.查看有关DDO的AngularJS 文档.
因此,我们可以使用范围内的链接功能来处理父范围,子范围或隔离范围.
您可以访问此文件以获取有关范围内指令的详细信息.
您可以在控制器和链接功能之间共享数据.
有时我们希望在Angular指令中的控制器和链接函数中访问相同的数据.通常我们将此数据添加到范围对象中.这有一些问题,例如将其暴露给任何子范围.将共享属性添加到控制器实例本身并访问链接功能.
您可能还对链接功能的需求感兴趣?