angular-input-modified 모듈을 사용하여 사용자가 양식을 변경했는지 추적하려고합니다. 비헤이비어를 전역 적으로 비활성화 한 다음 필요한 양식 필드에만 수정 가능한 비헤이비어를 추가하여 포함 정책을 사용합니다. 내 문제는 컬렉션 내부의 변경 사항을 추적하는 것입니다. 좀 더 구체적으로 나는 항목의 컬렉션을 가지고 있으며 사용자가 해당 속성을 표시 할 항목을 선택할 때 표시됩니다. 사용자가 속성을 변경하면 저장 버튼을 활성화해야합니다. 해당 내용ng 스위치 및 각도 입력 수정 동작
<div class="form-group subSection" bs-modifiable="true">
<input type="checkbox"
ng-model="wiDevCtrl.currentCollection.IsTriggerImmediately" /> </div>
그러나 변경하려면이 방법 원인과 체크 박스가 표시됩니다 컬렉션 항목의 사용자 선택에 따라 지금
COLLECTIONS
<select ng-model="wiDevCtrl.currentCollection"
ignore-dirty
ng-options="opt as opt.Name for opt in wiDevCtrl.device.Collections"></select>
그리고 angular-에 플래그를 '수정' 지금까지 나는이 시도 분명히 콜렉션이 변경되었을 때 $ pristine 값과 같이 저장된 것과는 다른 체크 박스에서 (바인딩을 통해) 값을 변경하기 때문에 입력 수정 모듈을 'true'로 설정합니다.
하지만 각 콜렉션마다 "peronal"체크 박스를 만들면 문제가 해결됩니다. 스위치를 사용해 보았습니다 :
<div class="form-group subSection">
<div ng-switch on="wiDevCtrl.currentCollection.Name" bs-modifiable="true">
<div ng-switch-when="ng-switch-default"></div>
<div ng-switch-when="1">
<input type="checkbox"
ng-model="wiDevCtrl.currentCollection.IsTriggerImmediately" />
</div>
<div ng-switch-when="2">
<input type="checkbox"
ng-model="wiDevCtrl.currentCollection.IsTriggerImmediately" />
</div>
<div ng-switch-when="3">
<input type="checkbox"
ng-model="wiDevCtrl.currentCollection.IsTriggerImmediately" />
</div>
</div>
</div>
그 후 나는 한 가지를 제외하고 거의 올바른 행동을 취했습니다. 체크 박스를 변경하면 '수정'이 올바르게 설정됩니다. 하지만 다른 콜렉션으로 전환하고 'masterValu'를 반환하면이 체크 박스가 $ pristine을 호출하는 것과 반대로 바뀌었지만 그렇게하지는 않습니다. 이전 컬렉션으로 돌아가서 체크 박스를 원래 '수정 된'상태로 되 돌리면 'false'가됩니다. 분명히 일어나지 않습니다. 어떤 아이디어? 감사.
당신은 탐색 선택에 Maracuya을 클릭 Plunker 예 here
- 을 찾을 수 있습니다. 확인란을 선택하십시오. Maracuya와 같은 마스터를 관찰하십시오 : "거짓"및 수정 됨 : 예.
- 이제 다른 과일을 선택하십시오.
- Maracuya로 돌아 오십시오. Observe MaracuyaLike Master가 "사실"이되고 수정 됨 : 아니오. 수정 된 상태의 양식이며 변경되지 않은 상태로 돌아갈 방법이 없습니다.