角度设置基于作用域中变量的动作

Angular set form action based on variable in scope

本文关键字:变量 作用域 设置      更新时间:2023-09-26

我一直在尝试设置一个搜索表单,在那里我可以注入表单操作属性。

在我的表格中,我有

<form action="{{action}}">

然后在我的控制器中我有

$scope.action = "http://www.somesite.com"

这给了我一个插值错误,因为它在字符串中有不受信任的"http:"。我该怎么解决这个问题。我知道我可以使用ng-bind-html把html放在dom中,但我不知道我是否可以只使用一个属性。

其他人有这个问题吗。我真的想不出办法了。

感谢

我同意流氓的回答。出于某种原因,$sce.trustAsURL似乎不起作用。相反,$sce.trustAsResourceUrl(")确实对我有效。

如果您使用Angular.js 1.2或更高版本,则可以访问严格上下文转义服务$sce

SCE帮助编写代码的方式(a)默认情况下是安全的,(b)使XSS、点击劫持等安全漏洞的审计更加容易。

在$sce中,可以将一个变量传递给$sce.trustAsUrl(value)以获得其原始值。所以你应该能够使用:

$scope.action = $sce.trustAsUrl("http://www.somesite.com");