[英]how do you get a reference to the directive object instance in angularJS?
所以基本上我有一个包装了jquery插件(如果重要的话jsTree)的指令。 我想要的只是获取指令对象的一种方法,这样我就可以使用暴露的插件对象并进行一些修改,而无需在指令中真正构建功能。
var ngJSTree = angular.module('jsTree.directive', []); ngJSTree.directive('jsTree', ['$http', function($http) { var treeDir = { restrict: 'EA', fetchResource: function(url, cb) { return $http.get(url).then(function(data) { if (cb) cb(data.data); }); }, . . . init: function(s, e, a, config) { treeDir.managePlugins(s, e, a, config); this.tree = $(e).jstree(config); treeDir.manageEvents(s, e, a); } }; return treeDir; } ]);
我可以很好地实现自己的注册表机制,并将其添加到每个指令的映射中,但是有没有更简单的方法,例如可能提供一个id并访问它。 诸如dojo拥有dijit.byId
或jquery插件如何通过dom进行访问的方式(很奇怪,但是可以工作!)。
它不能通过设计来完成。 您不应该尝试直接获取指令对象。
相反,需要指令并在链接功能中访问其控制器(这是指令进行通信的一种方式)。
例如:
<div directive1>
<div directive2>
</div>
</div>
脚本
app.directive('directive1', function() {
return {
restrict: 'A',
controller: function firstCtrl($scope) {
...
}
}
});
app.directive('directive2', function() {
return {
restrict: 'A',
require: '^directive1',
link: function(scope, element, attr, firstCtrl) {
... use firstCtrl ...
}
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.