ссылка на плункер моего варианта использования.
Я использую Eternicode Bootstrap Datepicker в своем приложении. Я создал директиву выбора даты, и она используется в форме Angular.
Директива средства выбора даты:
angular.module('MyApp', [])
.directive('myDatePicker', function($compile) {
return {
restrict: 'A',
require: 'ngModel',
link: function(scope, element, attrs, ngModelCtrl) {
$(element[0]).datepicker({
autoclose: true,
format: "dd/mm/yyyy"
});
$(element[0]).datepicker().on("change", function(e) {
scope.$apply(function() {
ngModelCtrl.$setViewValue(element.val());
});
});
}
};
});
Когда форма Angular загружается изначально, ее свойства следующие:
$pristine : false
$dirty : true
Когда я watch
form model
и печатаю их на консоли, я понял, что модель формы имеет свойство, которое было установлено средством выбора даты, и вот как это выглядит:
В той же ссылке на плункер, если я прокомментирую раздел даты в следующей форме, будут его свойства:
$pristine : true
$dirty : false
Вот так сейчас выглядит form model
:
Как мне защитить мою модель формы от повреждения, которое вызывает проблемы, установив $ pristine на false и $ dirty на true, несмотря на использование директивы Date?
PS: это абстракция более крупного варианта использования, который есть в нашем текущем приложении.
Заранее спасибо.