Action en forme de forme angulaire basée sur une variable de portée

J'ai essayé de configurer un formulaire de recherche où je peux injecter l'attribut d'action de formulaire.

Dans ma forme, j'ai

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

Ensuite, dans mon contrôleur, j'ai

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

Cela me donne une erreur d'interpolation car elle n'a pas de "http:" non approuvé dans la chaîne. Comment puis-je contourner cela. Je sais que je peux utiliser ng-bind-html pour mettre html dans le dom mais je ne sais pas si je peux faire fonctionner cela avec un attribut uniquement.

Quelqu'un d'autre a-t-il eu ce problème? Je ne peux vraiment pas penser à un moyen de le contourner.

Merci

Si vous utilisez Angular.js 1.2 ou supérieur, vous avez accès au service Strict Contextual Escaping , $sce .

SCE aide à écrire le code de manière à ce que (a) soit sécurisé par défaut et (b) rend l'audit des vulnérabilités de sécurité telles que XSS, clickjacking, etc. beaucoup plus facile.

Dans $ sce, vous pouvez passer une variable à $sce.trustAsUrl(value) pour obtenir sa valeur d'origine. Donc, vous devriez pouvoir utiliser:

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

Je suis d'accord avec la réponse du hooligan. Pour une raison quelconque, $ sce.trustAsURL ne semble pas fonctionner. Au lieu de cela, $ sce.trustAsResourceUrl ('') a fonctionné pour moi.