我正在使用Angular UI Bootstrap (https://angular-ui.github.io/bootstrap/),我想使用timepicker组件。尽管大多数组件有所有您想要的可用设置,但我还没有找到一种方法来使timepicker默认为空/ null,并且没有相应的设置。默认情况下,timepicker显示当前时间(网页打开时)。由于没有组件设置,我不确定是否有一种设置方式。
在我看来,对于这个组件来说,在空值情况下显示当前时间是一个致命的缺陷。我无法想象为什么它还没有被修复。
然而,以下是一个不显眼地解决此问题的想法。
免责声明:使用以下指令存在其缺点,它并不是最美观的解决方案,但它是一种hack方法,对于它作为hack方法,它工作得相当不错。
app.directive('inputEmpty', function () {
return {
restrict: 'A',
link: function link(scope, element, attributes) {
setTimeout(function () {//wait for DOM to load
var inputs = element.find('input');
inputs.val('');
scope.$watch(attributes.inputEmpty, function (val) {
if (!val) { inputs.val('').change(); }
});
});
}
};
})
。
<uib-timepicker ng-change="change()" hour-step="1" minute-step="15" show-meridian="true"
ng-model="value"
input-empty="value"
></uib-timepicker>