加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

AngularJS:链接vs编译vs控制器

发布时间:2020-12-17 09:23:27 所属栏目:安全 来源:网络整理
导读:当创建指令时,可以将代码放入编译器,链接函数或控制器。 在文档中,他们解释: 编译和链接功能用于角度的不同阶段 周期 控制器在指令之间共享。 但是,对我来说不清楚,哪种代码应该去哪里。例如。: 我可以在编译中创建函数,并将它们附加到链接中的作用
当创建指令时,可以将代码放入编译器,链接函数或控制器。
在文档中,他们解释:

>编译和链接功能用于角度的不同阶段
周期
>控制器在指令之间共享。

但是,对我来说不清楚,哪种代码应该去哪里。例如。:
我可以在编译中创建函数,并将它们附加到链接中的作用域。或者我只将功能附加到控制器中的范围?如果每个指令都有自己的控制器,如何在指令之间共享控制器?真的是控制器共享还是只是范围属性?

编译:

这是Angular实际编译你的指令的阶段。对于给定指令的每次引用,此编译函数只调用一次。例如,假设您正在使用ng-repeat指令。 ng-repeat将必须查找它附加到的元素,提取它附加到的html片段并创建一个模板函数。

如果你已经使用HandleBars,下划线模板或等同物,它像编译他们的模板来提取出一个模板函数。对于这个模板函数,你传递数据,函数的返回值是html,数据在正确的地方。

编译阶段是Angular中返回模板函数的步骤。角模板函数称为链接函数。

链接阶段:

链接阶段是将数据($ scope)附加到链接函数,它应该返回链接的html。因为指令还指定了这个html的位置或者它改变了什么,它已经很好去了。这是要对链接的html(即已经附加了数据的html)进行更改的函数。如果你在链接函数中编写代码,它通常是后链接函数(默认情况下)。它是一种回调,在链接函数将数据与模板链接后调用。

控制器:

控制器是一个放置某些指令特定逻辑的地方。这个逻辑也可以进入链接函数,但是你必须把这个逻辑放在范围上,使它“共享”。问题是,你将然后腐败的范围与你的指令东西,这不是真正的预期。那么,如果两个指令想要彼此交谈/相互合作,什么是替代方法?当然,你可以把所有的逻辑放到一个服务,然后使这两个指令依赖于服务,但只是带来一个依赖。另一种方法是为这个范围提供一个控制器(通常是隔离范围?),然后当该指令“需要”另一个指令时,该控制器被注入另一个指令。有关示例,请参阅angularjs.org第一页上的选项卡和窗格。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读