У меня возникли проблемы с изоляцией областей действия директивы поиска даты ниже.Изолирующие области с несколькими jquery ui date pickers в угловом
(function(){
'use strict';
angular.module('ganeshaApp')
.directive('datePickerSearch', function(){
return {
restrict: 'A',
require: 'ngModel',
link: function(scope, element, attrs, ngModelCtrl){
$(function(){
element.datepicker({
dateFormat: 'd/m/yy',
onSelect: function(date){
scope.date = date;
scope.$apply();
}
})
});
}
}
})
})();
В моей первой попытке я попытался с помощью этого кода, но, как ожидается, изменяя один вход с нг-моделью = «дата» обновляет все входы ссылающихся директиву с той же нг-моделью.
<tr>
<td>Publication Date:</td>
<td greyed-dates>
between
<div class="start inner-addon right-addon">
<i class="glyphicon glyphicon-calendar"></i>
<input type="text" ng-model="date"
date-picker-search placeholder="dd/mm/yyyy"/>
</div>
<span>and</span>
<div class="end inner-addon right-addon">
<i class="glyphicon glyphicon-calendar"></i>
<input type="text" ng-model="date"
date-picker-search placeholder="dd/mm/yyyy"/>
</div>
</td>
</tr>
<tr>
<td>Enactment Date:</td>
<td greyed-dates>
between
<div class="start inner-addon right-addon">
<i class="glyphicon glyphicon-calendar"></i>
<input type="text" ng-model="date"
date-picker-search placeholder="dd/mm/yyyy"/>
</div>
<span>and</span>
<div class="end inner-addon right-addon">
<i class="glyphicon glyphicon-calendar"></i>
<input type="text" ng-model="date"
date-picker-search placeholder="dd/mm/yyyy"/>
</div>
</td>
</tr>
All models update by clicking or typing
Я понял изолирования областей в директиве позволит решить эту проблему. Это делается в определенной степени, когда вы просто нажимаете на календарь, чтобы вводить даты, но когда вы пытаетесь ввести даты вручную, снова обновляются все входы, которые ссылаются на директиву.
Models update by clicking only
Единственный способ, которым я был в состоянии своего рода решить эту проблему путем изменения нг-моделей по каждому из элементов, давая им случайную родительскую ссылку (a.data, b.data, с .data, d.data). Хотя это позволяет вносить изменения в каждый сборщик дат в изоляции, это, безусловно, очень плохое решение. Если кто-нибудь знает, что может быть здесь, я бы очень признателен за любую помощь. Это как-то связано с изолированием областей, верно?