【问题标题】:AngularJS directive link function not being calledAngularJS指令链接函数没有被调用
【发布时间】:2013-12-24 15:59:28
【问题描述】:
我正在尝试将 angular-http-auth 库与引导模式窗口一起使用。模态运行良好,但指令有问题。
这是一个 jsfiddle 链接 - http://jsfiddle.net/jCUSh/85/ 。我正在尝试添加一个将被调用并添加侦听器的指令。我已经简化了 jsfiddle 中的示例,因此您不会看到 http-auth 导入。但是 scope.on('') 元素仍然存在(它们不会破坏图片)。
我的问题是 - 为什么不调用链接函数?我添加了elem.addClass('test') 作为示例。
我相信解决方案超级简单,就是看不到。
还有一个不太重要的问题——可以将作用域作为参数传递给另一个作用域吗?我需要它来关闭模态窗口。
谢谢
【问题讨论】:
标签:
angularjs
angularjs-directive
angularjs-scope
【解决方案1】:
大部分指令错误都显示在控制台中,只需启用日志记录:
app.config(function($logProvider){
$logProvider.debugEnabled(true);
});
另外,你可以断言指令是否被实际加载:
angular.module('my', [])
.controller('Controller', [ '$scope', '$injector',
function ($scope, $injector) {
assertDirectives($injector, [ 'dir1', 'dir2']);
});
function assertDirectives($injector, directives){
_.each(directives, function(directiveCamelCase){
if( !$injector.has(directiveCamelCase + 'Directive') )
throw("Directive " + directiveCamelCase + " is not available.")
});
}
//you may replace underscore's `each` with jquery `each` or regular js loop
因此您无需猜测指令为什么不起作用。