nie jestem pewien, ale tutaj jest wszystko SOE można spróbować:
ng-change="prmnt_a2 = (same)?prmnt_a1:''"
tutaj jest trudne, ale pełne sposób HTML, który powinien praca:
<div ng-if="same==false">
<input type="text" id="prmnt_a2" ng-model="prmnt_a2" class="customInput" placeholder="Address Line 2"/>
</div>
<div ng-if="same==true">
<input type="text" id="prmnt_a2" ng-init="prmnt_a2=prmnt_a1" disabled ng-model="prmnt_a2" class="customInput" placeholder="Address Line 2"/>
</div>
Uwaga: Ng-init nie jest zwykle używany do tego celu i pamiętaj, aby użyć polecenia ng-if and not ng-show/hide.
W przeciwnym razie, jeśli to nie zadziała: dyrektywa własna lub funkcja/$ watch w kontrolerze. ng-attr po prostu tu nie zadziała.
EDIT: dotyczący dyrektywy niestandardowego jest to, co będzie wyglądać kod:
.directive('myDirective', function(){
return{
restrict : 'A',
scope:{
same:'=myBoolean'
value:'=myValue'
},
require:'ngModel',
link:function(scope, element, attr, ngModelCtrl){
scope.$watch('same', function(newValue){
if(newValue){
ngModel.setViewValue(scope.value);
}
});
}
}
}
<input type="text" id="prmnt_a2" ng-init="prmnt_a2=prmnt_a1" ng-disabled="same" ng-model="prmnt_a2" my-directive my-boolean="same" my-value="prmnt_a1" class="customInput" placeholder="Address Line 2"/>
Dyrektywa ta jest dość proste. Jeśli potrzebujesz bardziej skomplikowanych rzeczy, sprawdź dokumentację w sieci.
spróbuję tego, ale na wypadek, gdy chcę uruchomić inną metodę na tym samym elemencie, to jaka będzie kolejność wykonywania funkcji. –
@ Sumitchoudhary nie rozumiem, co masz na myśli. Masz na myśli, jeśli chcesz uruchomić inną metodę wewnątrz 'ng-change'? jeśli tak, to możesz uruchomić wiele metod/funkcji, o ile oddzielisz je od ';'. Tak jak tutaj: ng-change = "stateChanged (samo), to samo? Prmnt_a2 = prmnt_a1: false" ' –