Skip to content

Commit b6fc4ed

Browse files
committed
Update opt object on model date set
When setStartDate/setEndDate is called (when the model date is set) the internal opts object should update so it should "remember" this change when re-initing. Currently, without this change, when the options are set from the template it triggers the "opts" watcher, which calls init - and loses the currently selected start/end date.
1 parent f534e84 commit b6fc4ed

4 files changed

+11
-7
lines changed

coffee/angular-daterangepicker.coffee

+2
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,13 @@ picker.directive 'dateRangePicker', ($compile, $timeout, $parse, dateRangePicker
4343
_setStartDate = _setDatePoint (m) ->
4444
if (_picker.endDate < m)
4545
_picker.setEndDate(m)
46+
opts.startDate = m
4647
_picker.setStartDate(m)
4748

4849
_setEndDate = _setDatePoint (m) ->
4950
if (_picker.startDate > m)
5051
_picker.setStartDate(m)
52+
opts.endDate = m
5153
_picker.setEndDate(m)
5254

5355
# Formats the obj into the string for the element input

js/angular-daterangepicker.js

+7-5
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
clearable: '='
2424
},
2525
link: function($scope, element, attrs, modelCtrl) {
26-
var customOpts, el, opts, _clear, _format, _init, _initBoundaryField, _mergeOpts, _picker, _setDatePoint, _setEndDate, _setStartDate, _setViewValue, _validate, _validateMax, _validateMin;
26+
var _clear, _format, _init, _initBoundaryField, _mergeOpts, _picker, _setDatePoint, _setEndDate, _setStartDate, _setViewValue, _validate, _validateMax, _validateMin, customOpts, el, opts;
2727
_mergeOpts = function() {
2828
var extend, localeExtend;
2929
localeExtend = angular.extend.apply(angular, Array.prototype.slice.call(arguments).map(function(opt) {
@@ -54,12 +54,14 @@
5454
if (_picker.endDate < m) {
5555
_picker.setEndDate(m);
5656
}
57+
opts.startDate = m;
5758
return _picker.setStartDate(m);
5859
});
5960
_setEndDate = _setDatePoint(function(m) {
6061
if (_picker.startDate > m) {
6162
_picker.setStartDate(m);
6263
}
64+
opts.endDate = m;
6365
return _picker.setEndDate(m);
6466
});
6567
_format = function(objValue) {
@@ -136,7 +138,7 @@
136138
return !(angular.isString(val) && val.length > 0);
137139
};
138140
_init = function() {
139-
var eventType, _results;
141+
var eventType, results;
140142
el.daterangepicker(angular.extend(opts, {
141143
autoUpdateInput: false
142144
}), function(start, end) {
@@ -146,15 +148,15 @@
146148
});
147149
});
148150
_picker = el.data('daterangepicker');
149-
_results = [];
151+
results = [];
150152
for (eventType in opts.eventHandlers) {
151-
_results.push(el.on(eventType, function(e) {
153+
results.push(el.on(eventType, function(e) {
152154
var eventName;
153155
eventName = e.type + '.' + e.namespace;
154156
return $scope.$evalAsync(opts.eventHandlers[eventName]);
155157
}));
156158
}
157-
return _results;
159+
return results;
158160
};
159161
_init();
160162
$scope.$watch('model.startDate', function(n) {

js/angular-daterangepicker.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

js/angular-daterangepicker.min.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)