angularjs – 定义指令时’controller’,’link’和’compile’
发布时间:2020-12-17 09:23:26 所属栏目:安全 来源:网络整理
导读:有些地方似乎使用控制器函数来进行指令逻辑和其他使用链接。角度主页上的选项卡示例将一个控制器用于其他指令,并将链接用于其他指令。两者有什么区别? 我将要扩展你的问题,还包括编译函数。 编译函数 – 用于模板DOM操作(即操纵tElement =模板元素),因此
有些地方似乎使用控制器函数来进行指令逻辑和其他使用链接。角度主页上的选项卡示例将一个控制器用于其他指令,并将链接用于其他指令。两者有什么区别?
我将要扩展你的问题,还包括编译函数。
>编译函数 – 用于模板DOM操作(即操纵tElement =模板元素),因此适用于与指令相关联的模板的所有DOM克隆的操作。 (如果你还需要一个链接函数(或前和后链接函数),并且你定义了一个编译函数,编译函数必须返回链接函数,因为’link’属性被忽略,如果’compile’属性定义。 >控制器函数 – 必须在另一个指令需要与此指令交互时使用。例如,在AngularJS主页上,pane指令需要将其自身添加到由tabs指令维护的作用域,因此tabs指令需要定义一个可以访问/调用的控制器方法(think API)。有关选项卡和窗格指令的更深入的说明,以及为什么tabs指令使用此控制器(而不是$ scope)在其控制器上创建一个函数,请参阅‘this’ vs $scope in AngularJS controllers。 一般来说,你可以把方法,$手表等放入指令的控制器或链接功能。控制器将首先运行,这有时很重要(参见fiddle,当ctrl和链接函数使用两个嵌套指令运行时记录)。正如Josh在comment中提到的,你可能希望将范围操纵函数放在控制器中,以便与框架的其余部分保持一致。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |