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)

  • 带角度版本的JSFIDLE
    1.2.1
  • 带角度版本的JSFIDLE
    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>