将指令的控制器注入同一指令



我正在构建一个基于AngularJs和GMaps API v3的应用程序。我遇到的问题是,我需要一种方法从另一个指令(require很容易)和同一个指令调用指令控制器的方法。

举个例子:

我有一个指令,它使用GMapsJS lib来渲染地图。还渲染了一些标记,我还有另一个处理导航的指令(即更改路线)。当我从路线A到路线B时,我需要删除标记并将地图留空。

那么,实现这一目标的最佳方式是什么呢?我应该构建三个指令吗?一个具有所有渲染方法和销毁标记方法,然后从其他指令调用它们?或者有没有一种方法可以将指令的控制器注入到同一指令中?

所以我在谷歌上搜索了一下,发现了这个!

https://github.com/bennadel/AngularJS-Directive-Controllers/blob/master/app/directives/master.js#L11

就像你说的@mmusicaly_ut一样,控制器在链接函数之前执行,所以它可以被注入到链接函数中。并使其方法可用。

指令的controllerlink函数之前执行,并且控制器中的所有$scope声明在同一指令的scope上可用。

因此,控制器注入指令本身。

演示:http://plnkr.co/edit/HnwJ0w0VTLbNOC87k74n?p=preview

最新更新