【问题标题】:Is there a way to load data into script有没有办法将数据加载到脚本中
【发布时间】:2015-04-26 05:31:38
【问题描述】:

所以在 Angular 中我正在尝试做

$scope.data = "<script> alert('hi'); </script>";

但不幸的是,这不起作用。我也尝试添加 ng-bind-html 但没有任何结果。

{{data}}

我也尝试在脚本标签中加载数据,但这似乎也不起作用。有没有办法避免这一切?例如

$scope.data = "bob";

-

 <script>
    var name = {{data}};
    </script>

【问题讨论】:

  • 你对“hi”的引用会打破这条线。
  • 我可能是错的,但我的理解是在页面加载后将
  • 你不应该使用 Angular 来加载额外的脚本标签。为什么不直接将代码放入文件并加载呢?

标签: javascript jquery angularjs


【解决方案1】:

您可以创建一个指令,将脚本动态加载到 DOM 中。

标记

<load-script ng-if="data" data="data"></load-script>

指令

app.directive('loadScript', function($compile){

  return {
    restrict: 'E',
    scope: {
      'data': '='
    },
    link: function(scope, element, attrs){
      element.append($compile(scope.data)(scope))
    }
  }
})

Working Plunkr

【讨论】:

    【解决方案2】:

    您的$scope 已经在&lt;script&gt; 块中或在Javascript 文件中。

    现在,您希望何时/如何调用 alert?如果我正确理解您要执行的操作,请按以下步骤操作:

    <div ng-click="doAlert()">
      Click here to see an alert
    </div>
    

    在你的控制器中:

    $scope.doAlert = function() {
       alert('hi);
    };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多