AngularJS指令链接功能不起作用

时间:2012-07-23 23:43:20

标签: javascript angularjs

http://jsfiddle.net/kz26/kH9wg/

我正在玩AngularJS中的指令,并且尝试了简写指令样式(仅返回链接函数)和longhand样式(返回指令定义对象的全部或部分。

不幸的是,我只能使用popup2中定义的简写方式使指令工作(激活jQuery弹出窗口)。 longhand popup2指令似乎根本不起作用,特别是我的定义对象中的link函数永远不会被调用。我需要做些什么才能使这个显式链接声明起作用?

2 个答案:

答案 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');
        }
    };

});

小提琴: http://jsfiddle.net/ZWLzb/