http://jsfiddle.net/kz26/kH9wg/
我正在玩AngularJS中的指令,并且尝试了简写指令样式(仅返回链接函数)和longhand样式(返回指令定义对象的全部或部分。
不幸的是,我只能使用popup2
中定义的简写方式使指令工作(激活jQuery弹出窗口)。 longhand popup2
指令似乎根本不起作用,特别是我的定义对象中的link
函数永远不会被调用。我需要做些什么才能使这个显式链接声明起作用?
答案 0 :(得分:9)
在创建指令而不是覆盖第一个指令时,两个指令都使用一个小的调整来重用相同的模块。请参阅this fiddle。
而不是:
angular.module("app", []).directive('popover1'...
angular.module("app", []).directive('popover2'...
做这样的事情:
var module = angular.module("app", []);
module.directive('popover1'...
module.directive('popover2'...
查看docs之后编辑我看到你可以做类似原帖的事情,就像这样:
angular.module('app', []).directive('popover1'...
angular.module('app').directive('popover2'...
在第一个[]
之后的后续调用中省略第二个参数angular.module
以配置现有模块。
答案 1 :(得分:2)
为什么链接功能不在这里调用?:
<div ng:app="app">
<div>
<p test="">Hello!</p>
</div>
var module = angular.module("app", []);
module.directive('test', function() {
return {
restrict: '',
link: function () {
console.log('linkfn');
},
compile: function() {
console.log('compile');
}
};
});