簡體   English   中英

ng-include和ng-submit中丟失的范圍不提交表單,而ng-click提交,但沒有表單值

[英]Scope lost in ng-include and ng-submit does not submit form while ng-click does but without values of form

我正在嘗試第一次使用ng-include和ng-submit。 我一直在嘗試遵循這樣的問題, 為什么在檢查$ pristine或$ setDirty()時在ng-include內未定義形式? 這是我構造index.html的方式:

<div id="info" ">
   <div ng-include src="'standard.html'" ng-controller="FormController as formcontrol"> 
</div>
</div>

在我的standard.html中

<uib-accordion close-others="oneAtATime"> <uib-accordion-group
    heading="{{person.personID}}" ng-repeat="person in people.info">
<form name="formHolder.personForm>

    <div class ="form-group">
      <input type="text" name="name"
      class="form-control" 
      ng-model="person.name"
      ng-readonly="person.name">
    </div>

    ----------
  </form>
<button type="button" ng-submit="updateStatus(person.personID)"
    class="btn btn-success btn-lg btn-block">Update</button>

同樣,我還有20個字段,其中只有4個是可編輯字段。 用戶單擊“更新”按鈕后,我想將所有表單數據都放入FormController中進行的ajax調用中。

在我的FormController中:

(function() {
    angular.module('peopleInfo2').controller('FormController', ['$http','$scope', function($http, $scope) {                 

        $scope.formHolder = {};
        $scope.updateStatus =function (personID) {
            console.log($scope.formHolder);
        };
    }]);        
})();

問題:

a)在使用ng-submit時不會調用表單,但是在使用ng-click時會調用表單。 我已經閱讀了他們之間以及他們說我應該使用ng-submit的任何地方之間的區別。 我究竟做錯了什么?

b)當前,如果我使用ng-click,則$ scope.formHolder中的數據是一個personForm對象,該對象包含我的數據,所有數據都以updateStatus函數內的對象形式存在。 為什么我不能像deviceForm.personID那樣訪問它們? 為什么它會給我像$ modelValue和$ viewValue這樣的值,而不是僅以形式綁定到ng-model的值?

c)如果我使用ng-click,則無論何時提交表單。 它只是從person.info數組的最后一個條目中獲取值。 這意味着無論如何,在嘗試讀取ng-model的值時,只能訪問ng-repeat讀取的最后一個值。 為什么?

我將不勝感激。 我已經快准備好了,但是我想確保我正確理解了事情,因為它將在整個項目中使用。 我曾嘗試過使用自定義指令,但有人建議該方法不正確,無法呈現Web表單,應使用ng-include。 謝謝。

您的代碼中存在一些問題,但是作為第一個問題,我認為您應該在form標簽上使用ng-submit指令。 像這樣:

<form name="{{formHolder.personForm}}" ng-submit="updateStatus(person.personID)">...</form>

使用<input type="submit" class="btn btn-success btn-lg btn-block"/>作為表單內的提交按鈕。

但是,為什么不在表單中使用ng-repeat並將整個數組傳遞給Submit函數呢?

暫無
暫無

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

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