基于范围变量的角度设置表单操作

时间:2014-08-28 07:30:48

标签: javascript angularjs

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

我的表格中有

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

然后在我的控制器中我有

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

这给了我一个插值错误,因为它在字符串中不受信任“http:”。我该如何解决这个问题。我知道我可以使用ng-bind-html将html放在dom中,但我不知道我是否可以使用属性来处理它。

是否还有其他人遇到此问题。我真的想不出办法解决它。

由于

2 个答案:

答案 0 :(得分:13)

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

答案 1 :(得分:4)

如果您使用的是Angular.js 1.2或更高版本,则可以访问Strict Contextual Escaping Service$sce

  

SCE协助编写代码的方式:(a)默认是安全的;(b)审核安全漏洞,如XSS,点击劫持等等。更容易。

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

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