Javascript 提交具有动态更改操作属性的表单

Javascript 提交具有动态更改操作属性的表单,javascript,forms,angularjs,Javascript,Forms,Angularjs,我正在尝试使用动态更改的动作url发送表单,但在更改属性后表单不会提交 下面是一个简单的例子: 1.设置url 2.发送 {{url}} app=角度模块(“app”,[]); 应用程序控制器(“formCtrl”,函数($scope){ $scope.set=函数(){ $scope.url=“/abc”; } }); 我不明白为什么会这样。我找到了解决办法! $scope.url应设置为任何非空值。比如: 即使我也不知道为什么会发生这种情况,但为什么不这样做:在表单中添加一个onsu

我正在尝试使用动态更改的动作url发送表单,但在更改属性后表单不会提交

下面是一个简单的例子:


1.设置url
2.发送
{{url}}
app=角度模块(“app”,[]);
应用程序控制器(“formCtrl”,函数($scope){
$scope.set=函数(){
$scope.url=“/abc”;
}
});
我不明白为什么会这样。我找到了解决办法!
$scope.url
应设置为任何非空值。比如:


即使我也不知道为什么会发生这种情况,但为什么不这样做:在表单中添加一个
onsubmit=“some_function()”
,然后您可以使用此函数将其发送到任何您想要的地方,只需添加
并返回false到最后这个函数。你不会真正“提交”一个有角度的表单。这不是一个好的模式,因为它意味着一个完整的新页面刷新,因此你的应用程序每次都需要完全重建。Angular更适用于单页应用程序,您可以通过AJAX请求(或WebSocket)动态获取数据,并使用它更改模型(然后再次更改视图)
<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>
app.controller("formCtrl", function($scope){
    $scope.url = "/def";

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

    }
});