ng-include 및 ng-submit에서 손실 된 범위는 ng-click이 수행하는 동안 양식을 제출하지 않지만 양식 값이 없습니다.

사용자 3044240

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처럼 액세스 할 수없는 이유는 무엇입니까? 양식에서 ng-model에 바인딩 된 값 대신 $ modelValue 및 $ viewValue와 같은 값을 제공하는 이유는 무엇입니까?

c) ng-click을 사용하면 양식이 제출 될 때마다. person.info 배열의 마지막 항목에서 값을 선택합니다. ng-model의 값을 읽으려고 할 때 ng-repeat에서 읽은 마지막 값만 액세스 할 수 있다는 의미입니다. 왜?

도움을 주시면 감사하겠습니다. 나는이 일을 거의 얻었지만 프로젝트 전체에서 사용될 것이기 때문에 올바르게 이해하고 있는지 확인하고 싶습니다. 이전에 사용자 지정 지시문을 사용하려고했지만 해당 접근 방식이 웹 양식을 렌더링하는 데 올바르지 않으며 ng-include를 사용해야한다고 제안되었습니다. 감사합니다.

KavehG

코드에 몇 가지 문제가 있지만 첫 번째로 양식 태그에 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를 사용하고 전체 배열을 제출 함수에 전달하지 않는 이유는 무엇입니까?

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관