【问题标题】:AngularJS - filter in script src attributeAngularJS - 在脚本 src 属性中过滤
【发布时间】: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


【解决方案1】:

我知道,除非文档对象在将元素添加到 DOM 之前触发事件并且我们可以在该事件处理程序中操作该元素的标签,否则很难实现。

对我来说,更简单的解决方案是在后端使用简单的 REGEX 替换来解析具有完整 URL 的模式。

【讨论】:

    猜你喜欢
    • 2013-06-28
    • 2017-02-21
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-21
    相关资源
    最近更新 更多