Angular.js。在标签<script>中的html模板内发送变量

尼戈罗上尉

我在指令html模板中包含此小部件代码。

<script type="text/javascript">
  _hcwp = window._hcwp || [];
  _hcwp.push({widget:"Stream", widget_id:10862, xid:{{_id}});
  (function() {
  if("HC_LOAD_INIT" in window)return;
  HC_LOAD_INIT = true;
  var lang = (navigator.language || navigator.systemLanguage || navigator.userLanguage || "en").substr(0, 2).toLowerCase();
  var hcc = document.createElement("script"); hcc.type = "text/javascript"; hcc.async = true;
  hcc.src = ("https:" == document.location.protocol ? "https" : "http")+"://w.hypercomments.com/widget/hc/10862/"+lang+"/widget.js";
  var s = document.getElementsByTagName("script")[0];
  s.parentNode.insertBefore(hcc, s.nextSibling);
  })();

在此模板内部有一个变量{{_id}}。

但是,当角度渲染此模板时,变量不会在模板内发送。

在某个时间点必须在殿堂内部发送变量以进行渲染?

我的指令:

app.directive('hyperComments', function($timeout) {
return {
    restrict: 'E',
    templateUrl: './templates/hc.html',
    replace: true,
    scope: {
      xid: '='
    },
    link: function(scope, element, attrs) {
    console.log('hello!');
    $timeout(function() {
        _hcwp = window._hcwp || [];
        _hcwp[0]= { widget:"Stream", widget_id: 28172, xid: 31241123};
        // HC.widget("Stream", _hcwp);

        (function() {
          // if("HC_LOAD_INIT" in window)return;
          // var HC_LOAD_INIT = true;
          console.log('in');
          var lang = (navigator.language || navigator.systemLanguage || navigator.userLanguage ||  "en").substr(0, 2).toLowerCase();
          var hcc = document.createElement("script"); hcc.type = "text/javascript"; hcc.async = true;
          hcc.src = ("https:" == document.location.protocol ? "https" : "http")+"://w.hypercomments.com/widget/hc/9345/"+lang+"/widget.js";
          var s = document.getElementsByTagName("script")[0];
          console.log(s);
          s.parentNode.insertBefore(hcc, s.nextSibling);
          })();
    }, 10000);

}
};

});

模板:

<div> <div id =“ hypercomments_widget”>由HyperComments提供动力的注释</ div>

那将是烧瓶

字符串中有不匹配的括号

_hcwp.push({widget:"Stream", widget_id:10862, xid:{{_id}});

无论如何,它在语法上不是正确的,并且会引发错误,Angular不会解析。的内容<script>

此外,Angular不处理<script>模板中的标记(出于安全考虑或jqlite实现的过于简化),因此

app.directive('sample', function () {
  return {
    scope: {},
    controller: function ($scope, $window) {
      $scope.bar = 'test';
      $window.foo = $scope.bar
    },
    link: function (scope, element, attrs, ctrl) {
      var scriptInane = element.find("script")[0];
      var script = document.createElement("script");
      script.innerHTML = scriptInane.innerHTML;
      scriptInane.parentNode.replaceChild(script, scriptInane); 
    },
    template: '<h1>test</h1><script>console.log(foo); alert(foo);<\/script>'
  };
});

添加angular.forEach以支持多个脚本。如果您已加载jQuery,则可以用不太冗长的方式执行相同的操作。

或者,您可以在前面加上<script>另一个(因为DOM已经很混乱),在其中指定全局变量,因此可以跳过该$window.foo =部分。

无论如何,这似乎是另一种“不要在家中尝试”的做法,可能会有更好的方法嵌入此小部件。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Angular.js。在标签<script>中的html模板内发送变量

来自分类Dev

如何在script标签内使用angular.js变量?

来自分类Dev

防止在页面模板中执行 <script> 标签内的模板

来自分类Dev

在 django {% static %} 标签中使用 angular js 模板

来自分类Dev

ng-repeat angular-js中的<br>标签

来自分类Dev

使用Angular JS在select标签的选项中添加空值

来自分类Dev

Angular.js。在新标签页中打开内容

来自分类Dev

使Angular指令模板中的html标签从json正确呈现

来自分类Dev

使Angular指令模板中的html标签从json正确呈现

来自分类Dev

角内<script>标签在html中的位置

来自分类Dev

Angular.js <style>标签

来自分类Dev

使用Angular JS时如何在ng-repeat内的img标签中显示图像?

来自分类Dev

优雅地在Angular JS中错误出模板变量

来自分类Dev

Angular js模板将不会显示pouch db中的变量

来自分类Dev

转义 <script> 标签内的内容

来自分类Dev

将PHP变量发送到JavaScript。<script>标签的位置?

来自分类Dev

在Angular组件模板中添加脚本标签

来自分类Dev

如何让Caja在script标签内保留模板文本?

来自分类Dev

Script标签中的djConfig属性

来自分类Dev

在angularjs中渲染<script>标签

来自分类Dev

ember js中链接模板内的变量

来自分类Dev

div标签内的Angular JS三元运算符

来自分类Dev

HTMLBars模板中不允许使用“ SCRIPT”标签

来自分类Dev

Angular js-是否可以使用HTML标签<button>进行路由?

来自分类Dev

JS显示HTML标签

来自分类Dev

如何在angular js中验证没有表单标签的输入?

来自分类Dev

Angular.js:在选择标签中获取所选对象的索引

来自分类Dev

如何将预先存在的 css 类附加到 Angular 的 Cytoscape JS 中的节点标签

来自分类Dev

使用DNN7在http put状态为400的Angular js + Type Script中获取错误

Related 相关文章

  1. 1

    Angular.js。在标签<script>中的html模板内发送变量

  2. 2

    如何在script标签内使用angular.js变量?

  3. 3

    防止在页面模板中执行 <script> 标签内的模板

  4. 4

    在 django {% static %} 标签中使用 angular js 模板

  5. 5

    ng-repeat angular-js中的<br>标签

  6. 6

    使用Angular JS在select标签的选项中添加空值

  7. 7

    Angular.js。在新标签页中打开内容

  8. 8

    使Angular指令模板中的html标签从json正确呈现

  9. 9

    使Angular指令模板中的html标签从json正确呈现

  10. 10

    角内<script>标签在html中的位置

  11. 11

    Angular.js <style>标签

  12. 12

    使用Angular JS时如何在ng-repeat内的img标签中显示图像?

  13. 13

    优雅地在Angular JS中错误出模板变量

  14. 14

    Angular js模板将不会显示pouch db中的变量

  15. 15

    转义 <script> 标签内的内容

  16. 16

    将PHP变量发送到JavaScript。<script>标签的位置?

  17. 17

    在Angular组件模板中添加脚本标签

  18. 18

    如何让Caja在script标签内保留模板文本?

  19. 19

    Script标签中的djConfig属性

  20. 20

    在angularjs中渲染<script>标签

  21. 21

    ember js中链接模板内的变量

  22. 22

    div标签内的Angular JS三元运算符

  23. 23

    HTMLBars模板中不允许使用“ SCRIPT”标签

  24. 24

    Angular js-是否可以使用HTML标签<button>进行路由?

  25. 25

    JS显示HTML标签

  26. 26

    如何在angular js中验证没有表单标签的输入?

  27. 27

    Angular.js:在选择标签中获取所选对象的索引

  28. 28

    如何将预先存在的 css 类附加到 Angular 的 Cytoscape JS 中的节点标签

  29. 29

    使用DNN7在http put状态为400的Angular js + Type Script中获取错误

热门标签

归档