나는 양식을 작성하여 angularjs (멋진 btw)를 뒤범벅합니다. json의 데이터를로드하고 데이터를 성공적으로 읽을 수는 있지만 작성한 플러 커와 관련하여 몇 가지 질문이 있습니다. (http://plnkr.co/edit/LHX40xHKmoB9onboeNrV?p=preview)
나는 거기에 두 가지 형식을 가지고 있는데, 두 가지 모두 작동합니다. 계속하기 전에 anglejs 프로에 대한 요청이 있습니다. 전반적으로 내 plunker 코드 스타일이 적절한 각도 방식입니까? 어떻게 개선 할 수 있습니까? 감사.
FORM # 1 : 양식이 작동하려면, 내가 'country
'을 지정한 JSON에 countries
에서 값의 취득
어쨌든, 다음 코드는 두 형태 사이의 차이는 .
JS :
$scope.vm.country = data[0].countries[0];
HTML :
Country: <select ng-model="vm.country" ng-options="c.name for c in vm.countries"></select>
FORM # 2 : 이것 JSON은 2가 약간 다르다. countries
배열은 country
입니다. 선택 옵션 expr 자체가 참조 - 실패 함. 여기에 제출 된 json on-click
은 국가 코드/이름에 대한 올바른 값을 가지고 있습니다. 그 값은 내가 원하는 것이 아니고 cities
배열을 포함하고 있습니다.
JS :
$scope.vm.country = data[0].country[0];
HTML :
Country: <select ng-model="vm.country" ng-options="c.name for c in vm.country"></select>
내가 선택 상자가 Form2를에있는 방법으로 행동하는 이유를 정확하게 알고 싶습니다. 양식을 제출할 때 쓸모없는 데이터를 보내는 것은 바람직하지 않습니다. 그럼 당신은 당신이 필요로하는 물건만을 보내려한다면 어떻게 될까요 $scope.vm
? 작은 폼의 경우 수동으로 새 $ scope 항목에 각 입력을 추가하면 좋지만 입력이 많은 거대한 양식의 경우 이상적이지는 않습니다.
업데이트
여기서 개별 변수 ($scope.form
)에 넣고 적당한 값으로 작동 용액이다. 또한 $watch
이 ng-change
으로 변경되었습니다. 이것은 다른 사람들을 도울 수 있습니다.
http://plnkr.co/edit/NDSvKS0mEF1Wgp2CBIOB?p=preview
$ watch를 사용하는 가장 좋은 방법은 무엇인지 알고 있었습니까? 나는 당신의 게시물을 볼 때까지이 행동을 알아 채지 못했습니다. –
일반적으로 사용자 지정 지시문에 $ watch를 추가하면됩니다. 희귀 한 상황이 컨트롤러를 허용 할지도 모르겠지만 $ emit, $ broadcast 및 $ scope 메서드에서 통신하는 것이 훨씬 유용하다고 생각합니다. –
알았습니다! 고마워요! –