2016-04-23 81 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」 –