6

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

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

不幸的是,我只能使用popup2. 手写popup2指令似乎根本不起作用,特别是link我的定义对象中的函数永远不会被调用。我需要做什么才能使这个显式链接声明起作用?

4

2 回答 2

9

您的两个指令都进行了一些小调整,以便在创建指令时重用相同的模块,而不是覆盖第一个。看到这个小提琴

而不是这样做:

angular.module("app", []).directive('popover1'...

angular.module("app", []).directive('popover2'...

做这样的事情:

var module = angular.module("app", []);

module.directive('popover1'...

module.directive('popover2'...

编辑:查看文档后,我发现您可以执行与原始帖子类似的操作,如下所示:

angular.module('app', []).directive('popover1'...

angular.module('app').directive('popover2'...

[]在第一个参数之后的后续调用中省略第二个参数angular.module以配置现有模块。

于 2012-07-24T04:11:23.197 回答
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/

于 2013-09-02T19:10:03.327 回答