我正在使用angularjs,我想在点击日历图标后显示我的bootstrap-datepicker。
现在就是这样:
<div class="input-append date datepicker">
<input type="text" b-datepicker ng-model="date"/>
<span class="add-on" ><i class="icon-calendar"></i></span>
</div>
其中b-datepicker
是自定义指令。单击文本字段显示datepicker,但图标单击不起作用。
这是来源:http://jsfiddle.net/cPVDn/
我的目标是这样:
http://jsfiddle.net/6QnMB/
我感谢任何帮助
更新
这是解决方案:
http://jsfiddle.net/cPVDn/53/
答案 0 :(得分:1)
从AngularStrap中查看可以解决问题的好插件:link。
JS
.config(function($datepickerProvider) {
angular.extend($datepickerProvider.defaults, {
dateFormat: 'dd/MM/yyyy',
startWeek: 1
});
})
HTML 的
<input type="text"
class="form-control"
ng-model="selectedDateAsNumber"
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>
参见演示 Plunker
这是他们的main page
答案 1 :(得分:1)
我将解决方案作为单独的答案发布。
要使图标点击工作而不是:
directive('bDatepicker', function () {
return {
restrict: 'A',
link: function (scope, el, attr) {
el.datepicker();
}
};
})
可以使用类似的东西:
directive('bDatepicker', function () {
return {
restrict: 'A',
link: function (scope, el, attr) {
el.datepicker({});
var component = el.siblings('[data-toggle="datepicker"]');
if (component.length) {
component.on('click', function () {
el.trigger('focus');
});
}
}
};
})
以下是完整的解决方案片段: http://jsfiddle.net/cPVDn/53/
答案 2 :(得分:0)
在bootstrap documentation的示例中,他们有点像这样:
<div class="input-append date datepicker">
<input type="text" is-open="opened" datepicker-popup ng-model="date"/>
<span class="add-on" ng-click="openAction($e)" ><i class="icon-calendar"></i></span>
</div>
然后在控制器中:
$scope.openAction = function ($event) {
$event.preventDefault();
$event.stopPropagation();
$scope.opened = !$scope.opened;
}