【问题标题】:Including <script>s in my Angular views [duplicate]在我的 Angular 视图中包含 <script>s [重复]
【发布时间】:2014-04-01 19:14:21
【问题描述】:

当我将 any &lt;script&gt; 粘贴到我的角度视图中时,它会静默失败并且不会加载脚本。

我正在尝试将 Saucelabs 视频嵌入到我的 AngularJS 项目中。 (Documentation, example script)

<script src="https://saucelabs.com/video-embed/<jobId>.js?auth=<authToken>"></script>

但是,将&lt;script&gt;alert('test')&lt;/script&gt; 粘贴到我的视图中似乎也不起作用,所以我认为这是 Angular 的默认行为。

显然,logic 并不真正属于视图,所以通常我不需要在此处包含任何 &lt;script&gt;s,但在这种情况下,我并没有真正看到替代品。

有什么想法吗?

【问题讨论】:

  • 啊,很好的发现,我确实搜索了重复项,但没有找到...让我验证这确实是相同的情况...
  • ...和它相同的情况,但this question's answers似乎更好。

标签: javascript angularjs saucelabs


【解决方案1】:

这是我用来在控​​制器中加载脚本的 hack。

顺便说一句,我输入了视图/状态的resolve 以等待脚本加载。

$http.get('http://api-maps.yandex.ru/2.0/?load=package.full&lang=ru-RU').then(function(data){
    window.eval(data);
    deffered.resolve() // because I'm using it in the resolve part
});

指定您自己的 URL 即可。

另一个选项可能是使用 RequireJS,但我没有使用它。

【讨论】:

  • 嗯,我会试一试(周一),但我觉得它行不通。 script in question 看起来实际上需要 &lt;script&gt; 标签,因为它知道在哪里注入 html(但我可能会感到困惑)
  • &lt;script&gt; 标签实际上正在加载远程脚本并评估(运行)它。我的代码也是如此。它将在全局范围内注入代码,因为我在窗口对象上使用了 eval。
猜你喜欢
  • 1970-01-01
  • 2016-08-06
  • 1970-01-01
  • 2018-10-17
  • 1970-01-01
  • 2011-04-09
  • 1970-01-01
  • 2020-12-01
  • 1970-01-01
相关资源
最近更新 更多