如何在angularJS中获得对指令对象实例的引用
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 ...
}
}
});
相关文章:
- 将JSON对象传递给angular指令
- AngularJs指令,该指令创建内部有数据对象的新指令
- 如何在angularjs中传递对象字段作为指令参数
- 如何在angularJS中获得对指令对象实例的引用
- 将对象传递给指令不允许全局变量
- 在angularjs ng-repeat指令中对对象进行排序
- 三.JS AngularJS 指令中的对象渲染
- 使用Angular js ng repeat指令过滤json对象
- 嵌套的Angular指令触发父对象上的作用域函数
- 将对象(变量)传递给angularjs指令
- 将对象作为参数传递给指令
- 在指令链接中访问 ngModel 的父对象
- 无法从具有隔离作用域的指令中访问控制器中定义的对象
- 将 javascript 对象(DataTable 列)传递给 Angular 指令
- AngularJS 指令:使用包含/编译链接集合中的对象
- 如何在 angularjs 中将对象传递给指令
- AngularJS:如何在指令范围的对象发生变化时更新与控制器作用域相关联的控制器作用域
- AngularJS - 访问控制器内的指令对象
- AngularJS指令:将动态创建的对象作为嵌套指令的属性传递
- 使用返回对象指令进行用户名检查