2014-12-09 13 views
0

http://plnkr.co/edit/I5JkHiNnwmklHAKh3ag9?p=previewугловой ремень DatePicker updateOn отправить

<form ng-model-options="{ updateOn: 'submit' }"> 
<input type="text" class="form-control" ng-model="activeEditorData.startDate" data-date-format="yyyy-MM-dd" data-date-type="number" data-min-date="02/10/86" data-max-date="today" data-autoclose="1" name="date2" bs-datepicker> 
<button type="button" class="btn btn-default" ng-click="$hide()">Cancel</button> 
<button type="submit" class="btn btn-primary" ng-click="$hide()">Save changes</button> 
</form> 

У меня возникли проблемы с нг-модельных вариантов и угловой планки DatePicker. Фактический $ scope.date обновляется точно так же, как ожидалось при нажатии сохранения, но дата ввода даты даты не обновляется, как следует при изменении дат. Есть ли способ заставить дампикера обновить его ценность или что-то еще?

Если вы удаляете атрибут ng-model-options, он работает так, как ожидалось, но это устраняет возможность отката всех данных при нажатии на отмена, что является проблематичным для большей формы.

ответ

0

Так что некоторые директивы просто не похожи на двусторонние привязки вне текущей родительской области, поэтому я просто удалил опции ng-model и сделал копию объекта.

Контроллер:

/** 
    * ng-model-options won't work with certain directives, 
    * so this is needed to replicate its behaviour. 
    */ 
    $scope.dataCopy = angular.copy($scope.activeEditorData); 

    $scope.save = function(hide) { 
     angular.forEach($scope.dataCopy, function(value, key) { 
      $scope.activeEditorData[key] = value; 
     }); 
     $scope.exit(hide); 
    }; 

Html:

<form> 
    <input type="text" class="form-control" ng-model="dataCopy.startDate" data-date-format="yyyy-MM-dd" data-date-type="number" data-min-date="02/10/86" data-max-date="today" data-autoclose="1" name="date2" bs-datepicker> 
    <button type="submit" class="btn btn-primary" ng-click="save($hide)">Save changes</button> 
</form> 
Смежные вопросы