在同一指令中注入指令的控制器

时间:2013-11-24 23:49:44

标签: javascript google-maps angularjs google-maps-api-3

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

让我们把它放在一个例子中:

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

那么实现这一目标的最佳途径是什么?我应该建立三个指令吗?一个用所有渲染方法和破坏标记方法,然后从其他指令调用它们?或者有没有办法将指令的控制器注入同一个指令?

2 个答案:

答案 0 :(得分:1)

所以我用谷歌搜索了一下我发现了这个!

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

就像你说@musically_ut一样,控制器在链接功能之前执行,因此它可以被注入到链接功能中。并使其方法可用。

答案 1 :(得分:0)

指令的controllerlink函数之前执行, controller 中的所有$scope声明在scope上可用相同的指令。

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

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