【问题标题】:AngularJS Directive - Multiple directives same nameAngularJS 指令 - 多个指令同名
【发布时间】:2017-02-14 17:11:05
【问题描述】:

假设我有多个具有相同名称“parent-elem”的指令(在每个页面上我可以有不同数量的这些指令 - 动态数量)

<div ng-app="app">
    <div parent-elem></div>
    <div parent-elem></div>
    <div parent-elem></div>
</div>

有没有办法知道(在链接函数内部)AngularJS 完成了渲染页面上所有同名的指令? 在指令链接函数内部——我怎么知道这个指令是最后一次渲染的?

注意:不使用 ng-repeat

【问题讨论】:

  • 如果您正在制作“可重用指令”或组件,它应该是一个独立的元素,它本身不依赖于任何其他元素的状态或整个页面的状态.如果你的parent-elem 依赖于知道它是否是最后一个被渲染的,那么它就有一个设计缺陷。
  • 话虽如此,这感觉XY Question。您正在询问一个不完全清楚的问题的潜在解决方案。 为什么重要它是第一个渲染还是最后一个渲染?

标签: javascript angularjs


【解决方案1】:

你应该写过多次相同的指令:P

现在,这完全取决于你的指令,你如何制作它。 它可以将计数器保存在服务中,或者 rootScope 可以在初始化时保存。

如果你在这种情况下使用 ng-repeat,你有一个 bool $last 可以告诉你渲染的元素是否是最后一个,你可以通过任何属性将其传递给指令。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多