【问题标题】:angularjs timepicker ng-changeangularjs timepicker ng-change
【发布时间】:2013-07-21 14:32:47
【问题描述】:

我正在使用 AngularJS TimePicker (ui.bootstrap.timepicker)。我想在时间选择器更改时触发一个事件。我查找了一个 ng-change 属性,但没有找到。

我的目的是保存时间更改时对模型所做的更改。现在我已经使用 ng-model 来设置模型,但我不知道如何通知控制器以便它可以执行保存(模型被序列化到本地存储)。如果可能,我想避免使用“保存”按钮。

在相关说明中,我也想为 ui.bootstrap.datepicker 做同样的事情。

【问题讨论】:

    标签: angularjs datepicker timepicker


    【解决方案1】:

    您可以使用 $scope.$watch 来监听时间选择器(或日期选择器)的变化,并调用控制器中所需的任何内容。这是一个基于引导示例的plunker,但只要时间更改就会发出警报。您也应该能够为 datepicker 应用类似的逻辑。

    【讨论】:

    • 良好而简单的解决方案。最好的部分是,即使您在datepickertimepicker 之间共享相同的Date 对象,它也可以工作。但是,如果您的初始化例程没有 100% 正确设置,您将遇到麻烦。除非已设置时间,否则请确保不要创建时间选择器(或其父项)。否则,您的初始时间将始终被当前时间覆盖。你可以通过使用ng-if<timepicker ng-if="!!myTime" ng-model="myTime" ... />
    • Domi,我遇到了一些类似的问题,您能帮忙设置什么,因为我不了解您在 cmets 中的解决方案。发布相同的问题:stackoverflow.com/questions/29148040/…
    【解决方案2】:

    你可以在脚本中使用

         <input type='text' class="form-control" ng-model="callMeTime.startHour" ng-change= "addTime()" id='datetimepicker1' placeholder="End Time" onkeydown="return false"/>
    
    
      <script>
      <script type="text/javascript">
    $(function() {
       
        $('#datetimepicker1').datetimepicker({
            format  : "HH:mm",
        });
    
        $('#datetimepicker1').datetimepicker().on('dp.change', function (event) {
            var user_time_picker1 = $("#datetimepicker1");
            user_time_picker1.val(this.value);
            user_time_picker1.trigger('input');
        });
        });
       </script>
    

    【讨论】:

    • HTML 是
    猜你喜欢
    • 2014-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-09
    • 1970-01-01
    相关资源
    最近更新 更多