使用angular的$ compile时在脚本标记中添加控制器

时间:2014-04-17 13:38:44

标签: javascript angularjs angularjs-compile

$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),您可以在控制台中看到以这种方式创建控制器确实有效。

1 个答案:

答案 0 :(得分:1)

我终于根据Loading an AngularJS controller dynamically中的解决方案设法完成了这项工作。 感谢@JoseM,@ MaxShoustin和@JussiKosunen的提示和帮助。

http://plnkr.co/edit/fzmEZlP6bGBJqTOkfApH?p=preview