栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Angular JS:当我们已经有了带范围的指令控制器时,指令的链接功能有什么需求?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Angular JS:当我们已经有了带范围的指令控制器时,指令的链接功能有什么需求?

在与和函数进行 最初的 斗争并阅读了很多有关它们的内容之后,我认为现在我有了答案。

link``controller

首先让 理解

简而言之,角度指令如何工作:

  • 我们从模板开始(作为字符串或加载到字符串)

var templateString = '<div my-directive>{{5 + 10}}</div>';

  • 现在,将
    templateString
    其包装为 角形元素

var el = angular.element(templateString);

  • 使用
    el
    ,现在我们用
    $compile
    进行编译,以获取 链接 功能。

var l = $compile(el)

这是发生了什么事

* `$compile` 遍历整个模板并收集其识别的所有指令。* 所发现的所有指令均以 **递归** 方式 **编译** 并`link`收集其功能。* 然后,所有`link`函数都包装在一个新`link`函数中,并以形式返回`l`。
  • 最后,我们
    scope
    为该
    l
    (链接)函数提供函数,该函数进一步使用this
    scope
    和它们的相应元素执行包装的链接函数。

l(scope)

  • 这会将
    template
    作为新节点添加到,
    DOM
    并进行调用
    controller
    ,这会将其监视添加到与DOM中的模板共享的 范围

比较 compile vs linkcontroller

  • 每个指令只能 编译 一次, 链接 功能将保留以供重复使用。因此,如果某条指令适用于指令的所有实例,则应在指令的

    compile
    功能内执行。

  • 现在,在编译之后,我们有了

    link
    模板 附加到 DOM时 执行的功能。因此,因此我们执行特定于指令每个实例的所有操作。例如: 附加事件基于范围更改模板 等。

  • 最后,当指令在上运行时(附加后),该 控制器 应处于活动状态和反应状态

    DOM
    。因此:

(1)设置带有链接的视图[ V* ](即模板)后。

$scope
是我们的[ M ],
$controller
也是我们在 MVC中的
[ C ]
*

(2)通过设置手表 利用 $ scope 进行 2向 绑定。

(3)

$scope
期望在控制器中添加监视,因为这是在运行时监视模板。

(4)最后,

controller
还用于能够在相关指令之间进行通信。(
myTabs
例如https://docs.angularjs.org/guide/directive中的示例)

(5)的确,我们也可以在

link
函数中完成所有这些操作,但它只 涉及关注点分离



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/633224.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号