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