簡體   English   中英

在AngularJS中提交表單?

[英]Submitting a form in AngularJS?

我有一個像這樣的模板:

<div><form id="appForm" method="POST" action="{{form.formActionAttr}}">
            <table class="form-table">
                <tr>
                    <td>
                        <input name="input1" type="hidden" value="{{form.input1}}"/>
                    </td>
                </tr>
                <tr>
                    <td>
                        <input name="input2" type="hidden" value="{{form.input2}}"/>
                    </td>
                </tr>
            </table>
        </form></div>

這是控制器:

function SamlFormController($scope, $sce, metadataService) {
    $scope.form = {};
    $scope.form.formActionAttr = $sce.trustAsResourceUrl('some.url');
    $scope.form.input1 = 'input1';
    $scope.form.input2 = 'input2';

    $scope.submitForm = function() {
        document.getElementById('appForm').submit();
    };
    $scope.submitForm();
}

我的目的是:控制器運行SubmitForm()方法,該方法將HTTP POST請求發送到form.formActionAttr url。

但是,使用上述代碼,在調用$ scope.submitForm()時,尚未填充action =“ {{form.formActionAttr}}”。

如何解決此問題?

提前致謝 :-)

問題在於,只有在應用程序真正初始化之后才能設置url。 因此,您需要將更改推到后期。 您可以使用$ timeout服務輕松完成此操作:

function SamlFormController($scope, $sce, $timeout, metadataService) {
    $scope.form = {};
    $scope.form.formActionAttr = $sce.trustAsResourceUrl('some.url');
    $scope.form.input1 = 'input1';
    $scope.form.input2 = 'input2';

    $scope.submitForm = function() {
        document.getElementById('appForm').submit();
    };
    $timeout(function() { $scope.submitForm() });
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM