【问题标题】:AngularJS: Determine which directive generated the elementAngularJS:确定哪个指令生成了元素
【发布时间】:2016-06-12 08:09:48
【问题描述】:

假设我已经像这样使用 jQuery 选择了一个元素或一组元素

$('.container .myelement');

然后可以确定是哪个指令生成了.myelement 吗?

下一步,我能否确定它所属的模块?

谢谢!

【问题讨论】:

  • 找到指令的最终目的是什么?使用 jQuery 来操作 Angular 代码是不正常的做法。这真的感觉像是一个 XY 问题。
  • @Claies 我只是使用 jQuery 选择一个节点作为示例,我也可以使用 document.getElementById() (没有 jquery 包装器)来完成它。我的观点是,一旦选择了一个节点,我怎样才能找到指令和/或模块?我需要扫描一个由 Angular 模块生成的页面,然后生成一个错误报告,详细说明所有错误及其原始指令/模块。
  • 这仍然感觉像是一个 XY 问题。您正在扫描什么“错误”?
  • @Claies 例如,我将扫描页面以确保标题具有正确的层次结构。所以H1只能有子标题H2,H2只能有H3作为子标题,依此类推。扫描完成后,如果他们的模块涉及此错误,则必须通知模块开发人员。

标签: angularjs angularjs-directive


【解决方案1】:
myAppsName = $(".myelement").closest("[ng-app!=''][ng-app]").attr("ng-app")

为您提供元素所属的 ng-app 名称

myApp = angular.module(myAppsName)

为您提供具有该名称的模块

myApp.directive($(".myelement").prop("tagName"))

给你指令。

【讨论】:

    猜你喜欢
    • 2015-04-12
    • 2021-12-27
    • 2016-12-24
    • 1970-01-01
    • 2014-12-28
    • 1970-01-01
    • 2013-04-08
    • 2014-09-02
    • 2015-01-26
    相关资源
    最近更新 更多