码迷,mamicode.com
首页 > Web开发 > 详细

angularjs 1 如何在ng-route的模板中使用script标签

时间:2018-06-01 23:09:39      阅读:322      评论:0      收藏:0      [点我收藏+]

标签:安全   pre   creat   ret   ==   UNC   doc   out   cti   

  如果你在angularjs 的路由模板里使用<script>标签的话,你会发现标签不起作用。这是因为angular为了安全起见而禁止了模板执行script。如果一定要在路由模板里使用script标签该怎么办呢?比较方便的方法是使用自定义指令。

    var app = angular.module(‘vcsite‘, [‘ngRoute‘]);

    app.directive(‘script‘, function() {
        return {
            restrict: ‘E‘,
            scope: false,
            link: function(scope, elem, attr)
            {
                if (attr.type===‘text/javascript-lazy‘)
                {
                    var s = document.createElement("script");
                    s.type = "text/javascript";
                    var src = elem.attr(‘src‘);
                    if(src!==undefined)
                    {
                        s.src = src;
                    }
                    else
                    {
                        var code = elem.text();
                        s.text = code;
                    }
                    document.head.appendChild(s);
                    elem.remove();
                }
            }
        };
    });

定义这个自定义指令后,在模版页使用<script  type=‘text/javascript-lazy‘></script>即可执行脚本。

 

angularjs 1 如何在ng-route的模板中使用script标签

标签:安全   pre   creat   ret   ==   UNC   doc   out   cti   

原文地址:https://www.cnblogs.com/axel10/p/9123796.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!