ng-change는 새로운 가치와 원래 가치를 가져옵니다.
풀다운에서 값을 선택하기 위해 ng-options를 사용하고 있습니다.오래된 값과 새로운 값을 비교할 수 있으면 좋겠습니다.ng-change는 풀다운의 새로운 값을 얻는 데 효과적입니다만, 어떻게 하면 새로운 값과 원래 값을 모두 얻을 수 있을까요?
<select ng-change="updateValue(user)" ng-model="user.id" ng-options="user.id as user.name for user in users"></select>
예를 들어 컨트롤러에 "이전 user.name은 BILL, 현재 사용자 이름은 FILIPE"라고 기록하도록 하겠습니다.
angular {{ngion}}을 사용하면 오래된 사용자 또는 user.id 값을 리터럴 문자열로 ng-change 속성에 추가할 수 있습니다.
<select ng-change="updateValue(user, '{{user.id}}')"
ng-model="user.id" ng-options="user.id as user.name for user in users">
</select>
ngChange에서는 updateValue에 대한 첫 번째 인수는 새로운 사용자 값이 되고 두 번째 인수는 select-tag가 angular에 의해 마지막으로 갱신되었을 때 형성된 리터럴로 오래된 user.id 값이 사용됩니다.
또,
<select ng-change="updateValue(user, oldValue)"
ng-init="oldValue=0"
ng-focus="oldValue=user.id"
ng-model="user.id" ng-options="user.id as user.name for user in users">
</select>
ng-change=someMethod({user.id}}) 등의 것을 사용할 수 있습니다.side {{expression}}에 값을 유지하면 표현식이 인라인으로 평가되어 현재 값(ng-change 메서드가 호출되기 전의 값)을 얻을 수 있습니다.
<select ng-model="selectedValue" ng-change="change(selectedValue, '{{selectedValue}}')">
변경 시마다 업데이트하는 currentValue 변수를 컨트롤러에 유지하십시오.그런 다음 업데이트하기 전에 매번 이 값을 새 값과 비교할 수 있습니다.
시계를 사용한다는 아이디어도 좋지만, 간단한 변수가 가장 간단하고 논리적인 해결책이라고 생각합니다.
스코프 워치를 사용할 수 있습니다.
$scope.$watch('user', function(newValue, oldValue) {
// access new and old value here
console.log("Your former user.name was "+oldValue.name+", you're current user name is "+newValue.name+".");
});
https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$watch
대신 시계를 사용할 수 있습니다. 시계에는 이전 값과 새 값이 포함되어 있지만, 그런 다음 다이제스트 사이클을 추가합니다.
컨트롤러에 두 번째 변수를 두고 설정하기만 하면 됩니다.
항상 다음 작업을 수행할 수 있습니다.
... ng-model="file.PLIK_STATUS" ng-change="file.PLIK_STATUS = setFileStatus(file.PLIK_ID,file.PLIK_STATUS,'{{file.PLIK_STATUS}}')" ...
컨트롤러:
$scope.setFileStatus = function (plik_id, new_status, old_status) {
var answer = confirm('Czy na pewno zmienić status dla pliku ?');
if (answer) {
podasysService.setFileStatus(plik_id, new_status).then(function (result) {
return new_status;
});
}else{
return old_status;
}
};
언급URL : https://stackoverflow.com/questions/26621104/ng-change-get-new-value-and-original-value
'IT' 카테고리의 다른 글
AngularJS: 폼이 유효하지 않은 필드를 판별할 수 있는 방법이 있습니까? (0) | 2023.03.14 |
---|---|
React 내부에 Polymer를 사용할 수 있습니까? (0) | 2023.03.14 |
Mongoose/MongoDB에서 멀티필드 인덱스 생성 (0) | 2023.03.09 |
타이프스크립트 반응 - 'react-materialize' 모듈에 대한 선언 파일을 찾을 수 없습니다.'path/to/module-name.module'에는 암묵적으로 임의의 유형이 있습니다. (0) | 2023.03.09 |
JSON.NET JsonConvert 와NET JavaScript Serializer (0) | 2023.03.09 |