【问题标题】:Loading an external script using <script src="..."> in Angular在 Angular 中使用 <script src="..."> 加载外部脚本
【发布时间】:2013-09-26 21:24:07
【问题描述】:

我需要在 URL 中包含一个具有会话 ID 的脚本(我通常不会这样做,但我使用 Crocodoc 将文档嵌入到页面中,他们似乎没有其他方法它不使用不可自定义的 iFrame):

<!--sets a global variable "_doc" that is needed for initialization-->
  <script src="//crocodoc.com/webservice/document.js?session=tohY5vh3dPjUbmW6_imSQFshvQUsJ3fuJFyG7CxBU-E3AArTbELI3U0bSJBm6z5ZKtXpJQCnJ-EU1J2WGbuu6WH4e3Bglcy38TplHg"></script>

我尝试了一些简单的事情,例如:

<script ng-src="//crocodoc.com/webservice/document.js?session={{ file.crocodoc_session }}"></script>

这可以很好地写出标签,但从不请求脚本。我还尝试仅使用“src”而不是“ng-src”,但它会在 URL 中使用“{{ file.crocodoc_session }}”发出请求,并且一旦实际写入会话 ID 值就不会发出另一个请求。

我尝试的最后一件事是创建一个带有编译函数的指令,其中我使用 jQuery 来设置 src 属性。那行得通,希望我无法弄清楚如何将会话 ID 传递给编译函数。我在元素上使用了“会话”属性,但是当我传递一个变量(或使用 session="{{ file.crocodoc_session }}")时,我将变量名称作为字符串而不是它的值。

【问题讨论】:

    标签: angularjs angularjs-directive crocodoc


    【解决方案1】:

    尝试评估控制器内部的链接,将其分配给范围变量,然后在 ng-src 中引用它。

    【讨论】:

    • 几乎成功了!它仍然没有加载脚本,但随后我尝试在控制器中创建整个脚本标记并将其绑定到 div(使用“
      ”)。然后它加载了。谢谢!
    • 你是怎么解决的,因为我遇到了非常相似的问题,找不到答案。find it here
    猜你喜欢
    • 2018-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-14
    相关资源
    最近更新 更多