[英]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.