Javascript ng action不会在表单中添加action属性
我希望表单中有动态动作属性。我有密码Javascript ng action不会在表单中添加action属性,javascript,angularjs,Javascript,Angularjs,我希望表单中有动态动作属性。我有密码 <form ng-action="/users/{{user.id}}"> </form> 它在角度1.2.1中工作,但在更高版本(>1.2.1) 带角度版本的JSFIDLE1.2.1 带角度版本的JSFIDLE1.2.2 我还尝试了angular版本1.2.4,1.2.6,但它不起作用。angular中没有称为ng action的指令 <form action="{{'/users/' + user.id }}">
<form ng-action="/users/{{user.id}}">
</form>
它在角度1.2.1
中工作,但在更高版本(>1.2.1)
1.2.1
1.2.2
我还尝试了angular版本
1.2.4
,1.2.6
,但它不起作用。angular中没有称为ng action的指令
<form action="{{'/users/' + user.id }}">
从1.2版开始,您需要添加上面的标签才能工作,默认情况下,Angular附带了严格上下文转义(SCE)
请参见$sce,您可以使用jQuery更改操作属性,如下例所示:
$('#formId').attr('action', '/users/'+$scope.user.id);
对于Angular 1.2+,您需要使用SCE信任URL 在控制器中,添加对
$sce
的依赖项。然后,定义url,如下所示
$scope.formUrl = $sce.trustAsResourceUrl('/users/' + user.id);
然后在视图中
<form action="{{formUrl}}" method="POST">
以下是我使用角度指令的解决方案: JS: HTML:
...
对此进行检查我尝试过,但它在1.2.1版以下工作。从angular版本1.2.2及更高版本来看,它不起作用。我试过1.3和1.2.14,上面的答案很好。请检查您的$scope,如果值是正确的,请检查此小提琴,它使用的是angular版本1.2.2,我也尝试了1.2.3及更高版本。它不起作用。您可以通过开发者控制台检查操作url。太好了action=“{{{'/users/'+user.id}}”
起作用,但action=“/users/{{user.id}}”
不起作用。你能更新答案吗。
<form action="{{formUrl}}" method="POST">
app.controller('formCtrl', ['$scope', function($scope) {
$scope.customAction = 'http://stackoverflow.com/';
}])
.directive('dynamicFormAction', function() {
return {
restrict: 'A',
scope: {
'dynamicFormAction': '='
},
link: function(scope, el, attrs) {
scope.$watch('dynamicFormAction', function (action) {
el[0].action = action;
});
}
};
});
<form action="" method="POST" dynamic-form-action="customAction">
...
</form>