Angular js和bootstrap ui日期选择器在点击图标时未在chrome中打开

时间:2014-07-01 02:38:02

标签: javascript angularjs datepicker modal-dialog angular-ui-bootstrap

我使用bootstrap UI在角度上有日期选择器。这段代码在IE中工作得非常好,但它没有在chrome中打开。在调用方法后,open()输入框会聚焦,但日期选择器弹出窗口不会打开。任何帮助都会非常明显。提前致谢

<p class="input-group">
<input is-open="opened" type="text" datepicker-popup="M/d/yyyy" ng-model="Date" datepicker-options="dateOptions" />
                               <span class="input-group-btn">
                                  <button type="button" class="btn btn-default" ng-click="open()"><i class="glyphicon glyphicon-calendar"></i></button>
                               </span>
                        </p>

Java脚本

$scope.open = function () {    
    $scope.opened = true;                                                                                    
};

2 个答案:

答案 0 :(得分:1)

您需要停止点击事件从按钮传播,因为它会导致日期选择器立即关闭...

<button type="button" class="btn btn-default" ng-click="$event.stopPropagation(); open();">
    <i class="glyphicon glyphicon-calendar"></i>
</button>

Demo - JSFiddle

答案 1 :(得分:0)

它可以纠正使用上述解决方案的方式。
当你使用 $ event.preventDefault(); $ event.stopPropagation(); 要小心。它也可能影响其他组件事件。实时代码为http://jsfiddle.net/mDLzn/34/

$scope.open = function (event) { 
event.stopPropagation();
event.preventDefault();
$scope.opened = true; 
console.log('foo'); };