Angular UI Bootstrap DatePicker customClass函数不会在$ watch中触发

时间:2017-04-26 11:28:22

标签: angularjs angularjs-directive angular-ui-bootstrap

我正在尝试在其范围更改时更新我的​​datePicker。我添加了一个手表,但这似乎阻止了customClass函数的触发。

指令HTML

select   z.*
from     doorbots z
order by earth_box(ll_to_earth(z.latitude, z.longitude), 0) <-> earth_box(ll_to_earth(34.0480698, -118.3589196), 0)
limit    5;

指令模板(datepicker)

<datepicker-calendar search-response="searchResponse"></datepicker-calendar>

角度指令代码

<div uib-datepicker ng-model="dt" class="well well-sm" datepicker-options="options" ng-if="dt"></div>

如果我删除范围监视,那么一切都按预期工作,并且customClass函数不会触发

2 个答案:

答案 0 :(得分:0)

我不确定,但我认为问题在

 if (journeyDate === new Date(data.date).setHours(0, 0, 0, 0)) {

我相信setHours会以某种方式修改原始日期对象

因此,为了防止它,您可以使用

保留数据对象
function getSelectedDates(data) {
     var _data = JSON.parse(JSON.stringify(data))

并使用_data代替data

<强>更新

我已经创建了一个JSFiddle example,因此在console.log getSelectedDates()中正在解雇,但{​​{1}}的重点是什么?

答案 1 :(得分:0)

我现在已经在@Leguest的帮助下解决了这个问题:)

问题在于时机。似乎在日期选择器渲染之前模型还没有准备好。