为什么我的日期选择器没有打开 - BootstrapUI - Angular

时间:2015-10-07 16:45:38

标签: angularjs angular-ui-bootstrap

当我点击图标时,我正试图从datepicker开始UI Bootstrap打开。这是我的html

<p class="input-group">
    <input type="text" class="form-control" datepicker-popup ng-model="dt" is-open="opened"/>
<span class="input-group-btn">
  <button type="button" class="btn btn-default" ng-click="open()"><i class="glyphicon glyphicon-calendar"></i></button>
</span>
</p>

这是我的js

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

scope.opened = false;

当我点击按钮时,我点击了open()opened被更改,没有任何反应。 datepicker没有出现。奇怪的是,如果我把ng-click放在输入上:

<input type="text" class="form-control" datepicker-popup ng-model="dt" is-open="opened" ng-click="open()"/>

然后datepicker工作并打开它应该的样子。我错过了某个地方。有谁知道这是什么问题?

1 个答案:

答案 0 :(得分:0)

这是一个范围问题,因为您要将模型变量设置为基元。

尝试在对象中声明opened变量,例如status.opened

<p class="input-group">
    <input type="text" class="form-control" datepicker-popup ng-model="dt" is-open="status.opened"/>
    <span class="input-group-btn">
        <button type="button" class="btn btn-default" ng-click="open()"><i class="glyphicon glyphicon-calendar"></i></button>
    </span>
</p>

<强>控制器

scope.status = {
    opened: false
}

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