我有一个网页,其中定义了一个模块(myModule),我在其中使用 Angularjs 进行增强
angular.bootstrap(element,[myModule.name]);
单击按钮后,我添加动态 html 并使用进行编译
$compile('<my-element data="data"></my-element>',$scope.$new());
该指令是使用添加的
myModule.directive('myElement',function(){});
问题是当我在调用 bootstrap 之前添加指令时, $compile 最终正确处理我的指令。但是,如果在调用 bootstrap 之后添加该指令,则 $compile 不会对我的 html 执行任何操作。它只是向其中添加了 ng-scope 类,并且不处理指令/标签。
就我而言,在调用 Bootstrap 之前并非所有指令都会被加载。如果我在调用 bootstrap 后加载指令,如何在页面中使用它?
谢谢。
编辑: 只是为了澄清。所有指令都是动态加载的。我在引导之前加载的那些工作正常。那些我在引导失败后加载的。当我交换加载的指令时,我可以得到相同的结果,因此它不是指令,而是在引导后,新添加的指令似乎没有生效。
最佳答案
注册惰性 Controller 或指令的问题是,您必须获取 $controllerProvider 和 $compileProvider分别是.
它只能在配置阶段完成,因此您必须保留引用,直到加载 Controller /指令。
最近我正在研究 Controller 的延迟加载,今天我添加了对指令的支持,请在此处查看我的代码:
https://github.com/matys84pl/angularjs-requirejs-lazy-controllers/
特别是这个模块lazy-directives.js
注意:我在项目中使用RequireJS,但是将我的解决方案应用于yepnope应该非常容易。
关于angularjs - 在 Bootstrap 后向模块添加指令并应用于动态内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13504452/