当$compile
- 一个有角度的HTML模板字符串时,我正在尝试将其他控制器和指令放在<script>
标记中,并使用HTML模板中的那些。< / p>
这样我实际上是在尝试实现某种插件机制,这样我就可以加载外部文件来增强我应用的功能。
<script>
标签实际上得到了评估,但我的问题是,HTML模板编译是在评估JavaScript之前进行的。所以编译器抱怨缺少控制器。
示例:
http://plnkr.co/edit/8oZYhRHAjP84ecnl6hG3?p=preview
此示例引发错误:Error: Argument 'Controller' is not a function, got undefined
如果在app.js
中删除第15-18行(引用创建的控制器的HTML),您可以在控制台中看到以这种方式创建控制器确实有效。
答案 0 :(得分:1)
我终于根据Loading an AngularJS controller dynamically中的解决方案设法完成了这项工作。 感谢@JoseM,@ MaxShoustin和@JussiKosunen的提示和帮助。