Как получить доступ к refreshView() в Twitter Bootstrap Datepicker для Angular?

#javascript #angularjs #twitter-bootstrap #datepicker

#javascript #angularjs #twitter-bootstrap #datepicker

Вопрос:

РЕДАКТИРОВАТЬ На самом деле это делается прямо из коробки.

Я оставляю панель управления здесь на случай, если кто-нибудь зайдет через поиск: http://plnkr.co/edit/maArVIu6iWuWZbkvLI4j?p=preview

Мне нужно отключить отключение определенных дат в datepicker на основе пользовательского ввода.

datepicker предлагает isDisabled(дата), но он запускается только один раз. Однако у него есть refreshView () согласно: https://github.com/angular-ui/bootstrap/issues/779

Чего я не могу понять, так это как запустить его после изменения.

 <!doctype html>
<html ng-app="plunker">
  <head>
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.8/angular.js"></script>
    <script src="http://angular-ui.github.io/bootstrap/ui-bootstrap-tpls-0.10.0.js"></script>
    <script src="example.js"></script>
    <link href="//netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css" rel="stylesheet">
  </head>
  <body>
    <div ng-controller="DatepickerDemoCtrl" >
      <h4>Inline</h4>
      <div style="display:inline-block; min-height:290px;">
        <div class="well well-sm" ng-model="dt" ng-change="change()">
            <datepicker></datepicker>
        </div>
      </div>
    </div>
  </body>
</html>
  

и js

 angular.module('plunker', ['ui.bootstrap']);
var DatepickerDemoCtrl = function ($scope) {
  $scope.change = function(){
    console.log('changed to '   $scope.dt);
    // Get array of disabled dates
    // call refreshView(); <--- My problem, right here
  };
};
  

Я пропустил ту часть, где я определяю массив отключенных дат и функцию isDisabled, которая проверяет это. Что мне только нужно знать, так это как запустить refreshView()

Редактировать:

Это то, что я хочу вызвать / запустить в ui-bootstrap-tpls.js

   this.refreshView = function() {
    if ( this.element ) {
      this._refreshView();

      var date = ngModelCtrl.$modelValue ? new Date(ngModelCtrl.$modelValue) : null;
      ngModelCtrl.$setValidity('date-disabled', !date || (this.element amp;amp; !this.isDisabled(date)));
    }
  };
  

Комментарии:

1. Как вы это исправили? Как вы получаете доступ к объекту с помощью refreshView() ?

2. Эй, в конце концов, я действительно создаю свой собственный компонент выбора даты. На реализацию этого и всех необходимых мне функций ушло около дня. Если вам нужны какие-то указания о том, как это сделать, дайте мне знать. Удачи!