【发布时间】:2013-06-27 12:16:53
【问题描述】:
我正在尝试在脚本标签中使用 angularjs 过滤器。使用 ng-src 指令,我可以指定将计算为脚本 url 的表达式,但问题是解析的脚本 url 是在它后面的所有其他脚本之后加载的。
<!-- defines myfilter filter -->
<script src="mymodule.js"></script>
<script ng-src="{{'firstscript.js'|myfilter}}"></script>
<script src="secondscript.js"></script>
firstscript.js 在 secondscript.js 之后执行。有什么方法可以按指定的顺序加载脚本。
【问题讨论】:
-
你为什么要在过滤器里做?
-
我能够通过将它们全部设为 ng-src 来让它们按顺序加载。然而,他们被多次调用。你能解释一下你在过滤器中做了什么吗?
-
令人着迷。很想知道你想用这个做什么。
-
使用过滤器来加载这样的脚本对于在开发机器上运行未压缩版本(以获得更好的堆栈跟踪)同时在生产服务器上使用压缩代码以提高速度等操作非常方便。取决于何时必须加载代码,但总的来说这是一个不错的概念。正如 Nix 所说,它们的顺序会有所不同,因为 on 是 ng-src 而一个是普通 src。 ng-src 直到 Angular 完成加载内容后才会运行,但正常的 src 会立即启动。
-
我正在尝试创建一个过滤器“资产”,它将资产/CDN url 附加到脚本名称。但我也应该能够使用一些外部资产文件,例如jquery、bootstrap 等可能托管在其他 CDN 上,因此我需要它们的完整 URL。无论我是使用过滤器还是使用完整的 URL,我都想强制执行顺序。
标签: angularjs angularjs-filter