2016-04-23 77 views
1

我是angularjs中的新成员。我有一个问题范围变量不能在脚本标记中工作。我曾尝试ng-src,但仍然无法正常工作。 script_path如果我只添加{{script_path}}工作正常,但如果我添加{{script_path}}/script.js,则此变量不起作用,该变量不能与script.js一起使用。如何在字符串属性中使用作用域变量

我的示例代码

<html ng-app="myApp"> 
<head ng-controller='HeadCn'> 
<meta charset="utf-8"> 
<title>test</title> 
<script src="js/angular.js"></script> 
<script ng-src="{{script_path}}/script.js"></script> 
</head> 


<body class="container"> 
    <script> 
     var app = angular.module('myApp', []); 
     app.controller("HeadCn", function($scope) { 
      $scope.script_path = "js/"; 
     }) 
    </script> 
</body> 
</html> 

请给我解决了如何在控制器的任何地方使用范围变量。

在此先感谢

+1

你有一个/在你script_path完全禁用SCE并且在使用ng-SRC时你还要加一个,所以你的路径将会有2个斜线,这不是有效的路径 – Manish

回答

0

Jimbrooism是正确的,因为安全问题没有得到处理,您收到此错误。

https://docs.angularjs.org/api/ng/service/ $ SCE仔细阅读

您可能需要使用其他过滤器作为网页或描述,你可以在配置水平,不建议

0

使用$sce解决问题,创建一个过滤器为解决这个问题

angular.module('myApp') 
    .filter('trustUrl', function ($sce) { 
    return function(url) { 
     return $sce.trustAsResourceUrl(url); 
    }; 
    }); 

<script ng-src="{{script_path}}/script.js | trustUrl "></script> 
+0

在添加单引号后仍然不起作用,但是感谢回复。 AngularJS v1.5.5 –

+0

请检查您的控制台是否有任何错误信息msg – byteC0de

+0

控制台中没有错误消息。 html display {{script_path}}不是“/ js” –

相关问题