Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在脚本标记的源属性中使用AngularJS模块常量_Javascript_Angularjs_Security - Fatal编程技术网

Javascript 如何在脚本标记的源属性中使用AngularJS模块常量

Javascript 如何在脚本标记的源属性中使用AngularJS模块常量,javascript,angularjs,security,Javascript,Angularjs,Security,我在我的应用程序中定义了一些常量,如下所示: angular.module('MyModule') .constant('myConstant', { 'userId': '0000', 'playerId': '1111' }); 我想在脚本URL中使用它们,如下所示: <script ng-src="http://domain.com/{{myConstant.userId}}/{{myConstant.playerId}}"></script>

我在我的应用程序中定义了一些常量,如下所示:

angular.module('MyModule')

.constant('myConstant', {
    'userId': '0000',
    'playerId': '1111'
});
我想在脚本URL中使用它们,如下所示:

<script ng-src="http://domain.com/{{myConstant.userId}}/{{myConstant.playerId}}"></script>
但这显然是错误的。它返回相同的错误:

严格上下文转义不允许在需要可信值时连接多个表达式的插值

这种标记化在脚本源代码中可行吗?正确的处理方法是什么?我应该使用服务来构建整个源URL吗?在这种情况下,我不想使用Grunt的字符串替换


非常感谢。

看起来您正在将用户ID传递给$sce.trustAsResourceUrl函数

trustAsResourceUrl的工作方式是,它为url创建一个别名,您可以稍后在ng src属性中引用该别名

这可能会奏效:

$scope.url = $sce.trustAsResourceUrl('http://domain.com/' + myConstant.userId + '/' + myConstant.playerId

<script ng-src="{{url}}"></script>
$scope.url=$sce.trustAsResourceUrl('http://domain.com/“+myConstant.userId+”/“+myConstant.playerId”

您可以使用dinamic加载函数来加载脚本,例如:您可以使用$timeout()来加载脚本将负载与角度解耦合谢谢,但我正在寻找角度解决方案。如果将完整URL传递到$sce,我认为您不应该有问题。我有一些代码可以在没有问题的情况下为iframe执行此操作。我不认为您传递给
trustAsResourceUrl
的内容是角度解决方案。这不是动态解决方案加载问题。它是关于在不同的地方使用常量,包括脚本URL。
$scope.url = $sce.trustAsResourceUrl('http://domain.com/' + myConstant.userId + '/' + myConstant.playerId

<script ng-src="{{url}}"></script>