내 범위에 날짜 필터링 문자열이 있습니다.AngularJS 범위 시계가 실행되지 않음
$scope.myModel = {date:""};
나는 또한의 jQuery 날짜 선택기
지시어 내에서이 문자열을 업데이트<input date-value="myModel.date" date-picker />
.directive('datePicker', function ($timeout) {
return {
scope: {
dateValue: "=?",
},
link : function (scope, elem, attrs) {
$timeout(function() {
elem.data('date-value', scope.dateValue);
elem.bind('change paste', function (blurEvent) {
if (elem.data('date-value') != elem.val()) {
console.log('value changed, old value is:' + elem.data('date-value') +'new value is: ' + elem.val());
elem.data('date-value', elem.val());
scope.dateValue = elem.val();
}
});
});
},
};
});
루트 범위 날짜가 제대로 업데이트지고 (AngularJS - Attribute directive input value change 사용)을 가지고 있고 성공적으로 그것을 서버에 보낼 수는 있지만, 날짜가 바뀌면 무언가를하고 싶습니다. 내 함수는 페이지 초기화시 한 번 호출되고 다시는 수행되지 않습니다.
$scope.$watch("myModel.date", function(newVal, oldVal) {
console.log("newVal: " + newVal + ' oldVal:' + oldVal);
if (newVal == oldVal) {
return;
}
// do something
});
여기서 내가 뭘 잘못하고 있니?
범위를 추가하십시오. scope.dateValue = elem.val(); 뒤에 지시문에 $ apply를 적용하십시오. – Scottie