在ng-include中动态加载的AngularJS指令不起作用

时间:2013-11-21 13:13:47

标签: angularjs angularjs-directive angularjs-ng-include

我有一个自定义指令,它添加了一些html。

myAppModule.directive('myDirective', function() {
    var linker = function(scope, element) {
        return element.html("<b>directive loaded</b>");
    };
    return {
        restrict: "E",
        rep1ace: true,
        link: linker,
        scope: false
    };
});

此指令在动态加载的html中加载和使用,该html包含在ng-include

<script type="text/javascript" src="dynamicscript.js"></script>
<my-directive>...</my-directive>

但它不起作用。永远不会调用linker - 函数。 如果我将dynamicscript.js脚本加载从包含的html移动到index.html,它就可以工作。

Here is the Plunkr

2 个答案:

答案 0 :(得分:2)

只需使用RequireJS加载控制器,指令等。

使用特殊插件,也可以加载CSS和HTML文件。

这是Ben Nadel的一个很好的例子:http://www.bennadel.com/blog/2554-Loading-AngularJS-Components-With-RequireJS-After-Application-Bootstrap.htm

答案 1 :(得分:0)

所有JS文件都应包含在'index.html'中 使用ng-include动态加载的JS文件(服务,模块,控制器)将不起作用