有没有办法列出为给定的角度模块定义的所有指令和控制器?例如,假设我在’main’模块中定义了三个控制器(即angular.module(’main’)。controller(’MainCtrl’,function(){…})。是否有办法获取列表的那三个控制器?
嗯,真的很难,我认为不是一件好事,但是:
var app = angular.module('MyApp', []);
console.log(app._invokeQueue[0][2][1]);
_invokeQueue是一个数组,如果您对每个获得[0] [2] [1]的条目执行此操作,则会在模块中看到每个提供程序的名称。
如果单独查看_invokeQueue,则会看到很多类似提供程序名称的内容,如下所示,但也提供了其类型(指令,控制器等);
但是您会觉得这是一件棘手的事情,不是一个好习惯,一个坏习惯,但仍然很有趣。
不要在生产中使用它!
问题内容: 我已经在AngularJS教程中看到,有人像这样声明其控制器功能: 其他人这样做是这样的: 哪种方法是在JS文件中声明控制器的最佳方法,因此与最新版本的AngularJS(现在为1.0.7)一起使用效果最佳,这是最佳做法?还是真的不重要吗? 问题答案: 您应该遵循他们提供的第二个示例,该示例使用字符串标识控制器,而不是潜在的全局函数。使用Array语法,以便您可以最小化代码而不必担心m
问题内容: 我可能会考虑将其完全倒退,但是我正在尝试制作三个嵌套指令,让它们称为:屏幕,组件和小部件。我希望窗口小部件能够触发组件中的某些行为,从而触发屏幕中的某些行为。所以: 我可以使用来在小部件的链接fn中要求父组件,但是如何进一步使组件控制器访问其包含的屏幕呢? 我需要的是WHAT in组件,因此,当您单击小部件的按钮时,它会发出“ screeny!”警报。 谢谢。 问题答案: 您可以通过以
问题内容: 我正在尝试使用AngularJS创建我的第一个应用程序。但是,如果我需要针对特定情况使用指令,我会感到困惑。 我有一个简单的“地图”页面,需要在其中显示所选区域的纬度/经度值。目前,我根本没有使用指令。我在控制器中执行所有操作,并使用局部显示结果。我不打算在其他任何地方重用我的地图视图。这就是为什么我不觉得我需要指令。 另一方面,我读到某个地方,每次您尝试在控制器中操作DOM(我正
问题内容: 我的应用程序中声明了一堆Angular模块。我最初开始使用“链式”语法声明它们,如下所示: 但是我认为这不太容易阅读,所以我开始使用如下模块变量来声明它们: 第二种语法对我来说似乎更具可读性,但我唯一的抱怨是该语法将变量保留在全局范围之外。如果我有其他名为的变量,它将被下一个变量覆盖(以及与全局变量相关的其他问题)。 所以我的问题是,这是最好的方法吗?还是做这样的事会更好? 还是足够重
问题内容: 我想触发一个包含jQuery指令的AngularJS自定义指令。如何做呢?我已经在指令中阅读了关于发射功能的信息? 想法? 问题答案: 您可以使用服务在控制器和指令之间进行通信。 服务可能如下所示: 该指令可以响应服务: 只需将我所做的替换为jQuery操作,您就应该拥有所需的东西。 这是一个有效的小提琴:http : //jsfiddle.net/jeremylikness/wqXY
blue-highlight.directive.ts yellow-highlight.directive.ts app.module.ts 让我们看看我们如何在模块的唯一组件中使用它。 app.component.ts 我们允许将多个指令用在同一模块中的相同元素上。Angular将按顺序进行每个转换每个指令。 因为我们已经在数组中定义了两个指令,并且数组是有序集合的项,当编译器找到具有属性的元