Я использую angularstrap popovers, чтобы создать простой popover, отображающий дату/время.Как заставить изменения во внутренней области директивы angularstrap popover обновить область родительского контроллера?
Вот сам поповер
<div class= "form-group form-group-sm">
<button type= "button" class= "btn" id= "start-select-btn"
data-placement= "bottom"
data-template= "/static/partials/popover/start.html"
data-auto-close= "true"
bs-popover
>
Start <span class= "caret"></span>
</button>
</div>
<button ng-click= "check()"></button>
А вот шаблон, который он тянет в. (Start.html)
<div class= "popover" id= "start-menu">
<div class= "arrow"></div>
<div class= "popover-content">
<input type= "text" class= "form-control" uib-datepicker-popup ng-model= "startDate"/>
<uib-timepicker ng-model= "startTime"></uib-timepicker>
</div>
</div>
Поэтому в основном то, что вы щелкаете и сборщик данных/таймер выбирается. То, что я не могу понять, это то, почему моя область значений не обновляется со значениями datepicker. Вот что я имею в виду ...
Предположим, я что-то изменил внутри дампикера, который падает. Тогда я нажимаю мой «чек()» метод, определенный внутри моего контроллера
$scope.check = function() {
alert($scope.startDate);
}
Это предупреждает, что я изначально установить свой STARTDATE в. Изменение значения в поле ввода не изменяет значение области startDate. Более того, как только я закрываю popover и снова открываю, значение сбрасывается до начального значения.
Для меня это похоже на проблему с внутренней областью действия этой директивы popover, которая не меняет область действия родителя.
Я попытался обновить шаблону немного
<div class= "popover" id= "start-menu">
<div class= "arrow"></div>
<div class= "popover-content">
<input type= "text" class= "form-control" uib-datepicker-popup ng-model= "$parent.startDate"/>
<uib-timepicker ng-model= "$parent.startTime"></uib-timepicker>
</div>
НГ-модель в настоящее время "$ parent.startDate" вместо того, чтобы просто "STARTDATE".
Это, казалось, было незначительным положительным эффектом. Когда я закрываю popover, ранее введенное значение для datepicker теперь сохраняется.
Однако, когда я выполняю свою функцию «check()» раньше, предупреждаемое значение ($ scope.startDate) остается неизменным.
Я считаю, что эта проблема связана с самим popover, а не с моим datepicker/timepicker, потому что они работали с областью в том виде, в котором я намереваюсь, прежде чем я попытался поместить их в шаблон для popover.
Итак, как мне получить внутреннюю область этого popover, чтобы зеркально отразить родительскую область моего контроллера?
редактировать: Я пытался переходящий в сферу на «BS-пирог» атрибут как этот
...
bs-popover= "startScope"
...
, а затем внутри моего контроллера
$scope.startScope = {
startDate : $scope.startDate
};
это не сработало .. когда я нажал моя контрольная кнопка для проверки, предупредительное значение все еще было тем, что первоначально было унаследовано от родительской области.
Можете ли вы создать исполняемый фрагмент с вашей проблемой? – fracz
К сожалению, я не могу. За брандмауэром. – Zack
Я имел в виду JSFiddle или что-то в этом роде :-) – fracz