텍스트 입력에서 ng-change가 작동하지 않음
저는 앵글J는 처음입니다.제 코드에는 텍스트 필드에서 초기화된 색상 선택기가 있습니다.사용자가 색상의 값을 변경하고 해당 색상이 스팬의 텍스트 배경으로 반영되기를 원합니다.안 돼요.무엇이 부족합니까?
HTML:
<body ng-app="">
<input type="button" value="set color" ng-click="myStyle={color:'red'}">
<input type="button" value="clear" ng-click="myStyle={}">
<input type="text" name="abc" class="color" ng-change="myStyle={color:'green'}">
<br/>
<span ng-style="myStyle">Sample Text</span>
<pre>myStyle={{myStyle}}</pre>
</body>
플런커 - http://plnkr.co/edit/APrl9Y98Em0d6rxuzRDE?p=preview
하지만 내가 그것을 바꿀 때ng-click
그건 효과가 있다.
ng-change에는 ng-model이 필요합니다.
<input type="text" name="abc" class="color" ng-model="someName" ng-change="myStyle={color:'green'}">
같은 문제가 있습니다. 제 모델은 다른 양식에서 바인딩되어 있습니다.ng-change
그리고.ng-model
아직 작동하지 않습니다.
<input type="hidden" id="pdf-url" class="form-control" ng-model="pdfUrl"/>
<ng-dropzone
dropzone="dropzone"
dropzone-config="dropzoneButtonCfg"
model="pdfUrl">
</ng-dropzone>
입력#pdf-url
단, dropzone에서 데이터를 가져옵니다(두 가지 바인딩).ng-change
이 경우에는 작동하지 않습니다. $scope.$watch
이 솔루션은 다음과 같습니다.
$scope.$watch('pdfUrl', function updatePdfUrl(newPdfUrl, oldPdfUrl) {
if (newPdfUrl !== oldPdfUrl) {
// It's updated - Do something you want here.
}
});
이게 도움이 됐으면 좋겠다.
Angular에서 무언가를 편집하려면 html에 ngModel을 삽입해야 합니다.
샘플에서 다음을 시험해 보십시오.
<input type="text" name="abc" class="color" ng-model="myStyle.color">
당신은 변화를 전혀 볼 필요가 없어요!
다음과 같은 작업을 수행할 수 있습니다.
지시문 사용
directive('watchChange', function() {
return {
scope: {
onchange: '&watchChange'
},
link: function(scope, element, attrs) {
element.on('input', function() {
scope.onchange();
});
}
};
});
또한 함수를 다음과 같이 바인드할 수도 있습니다.ng-change
이벤트 리스너(좀 더 복잡한 로직을 실행할 필요가 있는 경우)
<div ng-app="myApp" ng-controller="myCtrl">
<input type='text' ng-model='name' ng-change='change()'>
<br/> <span>changed {{counter}} times </span>
</div>
...
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
$scope.name = 'Australia';
$scope.counter = 0;
$scope.change = function() {
$scope.counter++;
};
});
https://jsfiddle.net/as0nyre3/1/
우선 네 코드를 보고 있는데 넌 컨트롤러가 없어따라서 컨트롤러를 사용하는 것이 좋습니다.컨트롤러를 사용해야 할 것 같습니다. 왜냐하면 변수가{{myStyle}}
2개의 곱슬곱슬한 괄호가 보여서 컴파일 할 수 없습니다.
두 번째로 입력에 ng-model을 사용해야 합니다.이 지시어는 입력 값을 변수에 바인드합니다.
언급URL : https://stackoverflow.com/questions/26114974/ng-change-not-working-on-a-text-input
'programing' 카테고리의 다른 글
Ajax를 사용하여 JSON을 PHP로 보내는 중 (0) | 2023.03.08 |
---|---|
컴포넌트의 렌더 어레이를 리액트 (0) | 2023.03.08 |
angularjs 형식 재설정 오류 (0) | 2023.03.08 |
대응: 기존 컴포넌트에 소품 추가 (0) | 2023.03.08 |
반응 제어 구성 요소와 제어되지 않는 구성 요소란 무엇입니까? (0) | 2023.03.08 |