动态更改 action 属性后提交表单

3
我正在尝试发送一个具有动态更改的操作URL的表单,但在更改属性后,表单不会提交。
这是一个简单的示例: http://jsfiddle.net/THZHL/1/
<div ng-app="app">
    <form name="b" action="{{url}}" methood="post" ng-controller="formCtrl">
        <button type="button" ng-click="set()">1. set url</button>
        <button type="submit">2. Send</button>
        {{url}}
    </form>
</div>
<script>
    app = angular.module("app", []);

    app.controller("formCtrl", function($scope){
        $scope.set = function(){
            $scope.url = "/abc";
        }
    });
</script>

我不明白为什么会以那种方式发生。


我也不知道为什么会发生这种情况,但你可以这样做:在表单中添加 onsubmit="some_function()",然后使用此函数将其发送到任何想要的位置,并在最后添加 return false; 到此函数中。 - raw_orb
你不会真的使用Angular来“提交”表单。这不是一个好的模式,因为它意味着完全刷新页面,因此每次都需要完全重建应用程序。Angular更适用于单页应用程序,其中您可以通过AJAX请求(或WebSockets)动态获取数据,并将其用于更改模型(然后再次更改视图)。 - David Losert
1个回答

1
我找到了解决方案!$scope.url应该设置为任何非空值。就像这样:

http://jsfiddle.net/THZHL/2/

app.controller("formCtrl", function($scope){
    $scope.url = "/def";

    $scope.set = function(){
        $scope.url = "/abc";

    }
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接