我有一个定义了模块的网页(myModule),我正在使用它来增强angularjs
angular.bootstrap(element,[myModule.name]);
Run Code Online (Sandbox Code Playgroud)
点击一个按钮后,我添加动态html并使用编译
$compile('<my-element data="data"></my-element>',$scope.$new());
Run Code Online (Sandbox Code Playgroud)
该指令是使用添加的
myModule.directive('myElement',function(){});
Run Code Online (Sandbox Code Playgroud)
问题是当我在调用bootstrap之前添加指令时,$ compile最终正确处理我的指令.但是,如果在调用bootstrap之后添加了该指令,则$ compile对我的html没有任何作用.它只是将类ng-scope添加到它,并且不处理指令/标记.
在我的例子中,并不是在调用bootstrap之前加载所有指令.在我调用bootstrap后加载指令的情况下,如何在页面中使用它?
谢谢.
编辑:只是为了澄清.所有指令都是动态加载的.我在bootstrapping之前加载的工作正常.我在引导后加载的那些失败了.当我交换加载的指令时,我可以得到相同的结果,因此它不是指令,但似乎是在引导后,新添加的指令似乎没有生效.
注册延迟控制器或指令的事情是你必须分别获得$ controllerProvider和$ compileProvider.
它只能在配置阶段完成,因此您必须保留引用,直到加载控制器/指令.
最近我正在加载控制器的延迟加载,今天我已经添加了对指令的支持,请在这里查看我的代码:
https://github.com/matys84pl/angularjs-requirejs-lazy-controllers/
特别是这个模块lazy-directives.js
注意:我在我的项目中使用RequireJS,但是将我的解决方案应用于yepnope应该很容易.
归档时间: |
|
查看次数: |
6127 次 |
最近记录: |