【问题标题】:Angular ui timepicker pop up not showing upAngular ui timepicker 弹出未显示
【发布时间】:2015-10-25 16:53:14
【问题描述】:

以下代码未显示弹出时间选择器。知道如何解决吗?

代码:

<ul class="dropdown-menu custom-scroll dropDownLabel custom-width" role="menu" aria-labelledby="btn-append-to-body"
                    ng-show="!sr.timedisplay"	
                >
                    <li role="menuitem">
                        <a href="" ng-click="$event.stopPropagation()">Start Time
                           
							<p class="input-group">
								<input type="text" class="form-control" timepicker-popup ng-model="sr.startTime" is-open="opened" timepicker-options="timeOptions" ng-required="true"/>
									<span class="input-group-btn">
										<button class="btn btn-default" ng-click="sr.getTime('startTime')"><i class="glyphicon glyphicon-time"></i></button>
									</span>
								</p>
                        </a>
                    </li></ul>

【问题讨论】:

    标签: angularjs angular-ui angular-ui-bootstrap timepicker angular-ui-bootstrap-tab


    【解决方案1】:

    没有timepicker-popup这样的东西,至少在官方documentation中没有——问题被标记为

    但是您可以使用timepickerdropdown 自己创建一个:

    <span uib-dropdown auto-close="outsideClick">
      <a href uib-dropdown-toggle>
        {{ displayTime }}
      </a>
      <ul class="uib-dropdown-menu">
         <li>
            <uib-timepicker ng-model="mytime" hour-step="hstep" minute-step="mstep" show-meridian="ismeridian"></uib-timepicker>
         </li>
      </ul>
    </span>
    

    该脚本与timepicker docs 中的脚本基本相同,除了用于下拉菜单的displayTime

    $scope.$watch('mytime', function(newValue, oldValue) {
        var hour = $scope.mytime.getHours()-($scope.mytime.getHours() >= 12 ? 12 : 0),
            hour = hour<10 ? '0'+hour : hour,
            minutes = ($scope.mytime.getMinutes()<10 ? '0' :'') + $scope.mytime.getMinutes(), 
            period = $scope.mytime.getHours() >= 12 ? 'PM' : 'AM';
        $scope.displayTime = hour+':'+minutes+' '+period
      })
    

    plnkr -> http://plnkr.co/edit/J4alKogyKuevSGdTkLFQ?p=preview

    NB:plnkr 在 0.14.3 中。如果您使用的是 0.14.0 之前的 Angular UI Bootstrap,那么当然可以跳过 uib- 前缀,它会起作用。


    带有字形的按钮样式:

    <span class="btn btn-default" uib-dropdown auto-close="outsideClick" >
      <a href uib-dropdown-toggle>
        {{ displayTime }} <i class="glyphicon glyphicon-time"></i>
      </a>  
      <ul class="uib-dropdown-menu">
         <li>
            <uib-timepicker ng-model="mytime" hour-step="hstep" minute-step="mstep" show-meridian="ismeridian"></uib-timepicker>
         </li>
      </ul>
    </span>
    

    http://plnkr.co/edit/fyC6TfDsrJqsuGCqm11t?p=preview

    【讨论】:

    • 好的,谢谢!这就是我只想了解的。但是,单击表单输入组的图标后,我需要打开时间选择器。!
    • @Smitha,好吧-您的示例有点令人困惑,并且显然是从更大的上下文中得出的,它不会按原样呈现任何内容,因此我不知道您到底要做什么。 .. input-groups 用于向输入控件添加文本、按钮或图标 - 但您想要输入控件做什么?您可以将 btn 类和字形添加到 span,请参阅更新。
    • @davidkonrad 对此表示感谢,对于那些使用更高版本的 ui bootstrap 的人,他们现在将指令迁移为属性而不是元素,&lt;div uib-timepicker ng-model="mytime" ng-change="changed()" hour-step="hstep" minute-step="mstep" show-meridian="ismeridian"&gt;&lt;/div&gt; 花我的时间来解决这个问题
    • 没有别的地方,我发现旧版本的 'uib' 被删除了。谢谢,它奏效了。我认为文档不再提及很多旧版本。但是,在我的情况下,一旦我单击时间输入框,下拉菜单就会关闭。我已经尝试了auto-close 的每个值,但都不起作用
    【解决方案2】:

    这曾经有效:

    <uib-timepicker></uib-timepicker>
    

    现在你需要这样做:

    <div uib-timepicker></div>
    

    【讨论】:

    • 文档对于我们丢失的更改并不那么具体
    • 我在认真地为这个问题挠头。指令定义的更改导致控件不再出现在页面上 - 当我升级到新版本的 angular-ui 时,一切都默默地失败了。这为我解决了这个问题。
    【解决方案3】:

    基于 David 的示例/输入,这是一个带有 html 输入组件的示例,但没有控制器。我在 Firefox 和 Chrome 上对其进行了测试,效果很好。顺便说一句,我正在使用 bootstrap v3.3.6 和 Angular UI bootstrap v1.3.2。

    <div class="row">
        <div class="col-md-2" style="text-align: right">
            <label>Time Picker Popup</label>
        </div>
        <div class="col-md-2">
            <div class="input-group">
                <input type="text" class="form-control">
                <div class="input-group-btn" uib-dropdown auto-close="outsideClick">
                    <button type="button" class="btn btn-default dropdown-toggle" uib-dropdown-toggle><i class="glyphicon glyphicon-time"></i></button>
                    <ul class="dropdown-menu dropdown-menu-right" uib-dropdown-menu>
                        <li><uib-timepicker ng-model="mytime" hour-step="1" minute-step="15" show-meridian="false"></uib-timepicker>
                    </ul>
                </div>
            </div>
        </div>
    </div>
    

    【讨论】:

      猜你喜欢
      • 2017-03-24
      • 1970-01-01
      • 1970-01-01
      • 2011-04-23
      • 1970-01-01
      • 2014-07-11
      • 1970-01-01
      • 1970-01-01
      • 2016-04-08
      相关资源
      最近更新 更多