AngularJS 将 datatimepicker 选择的值绑定到 ng-model

Posted

技术标签:

【中文标题】AngularJS 将 datatimepicker 选择的值绑定到 ng-model【英文标题】:AngularJS binding datatimepicker selected value to ng-model 【发布时间】:2014-11-25 15:33:21 【问题描述】:

我有一个新手 AngularJS 问题 - 我正在使用 datetimepicker 库,我很难选择绑定到我的模型的日期...我看到一些帖子谈论无法访问 datetimepicker 模型直接,但在我的情况下,我发现如果我只是在我的日期输入框中手动键入一个文本值,它就会绑定!如果我使用选择器选择日期,我会得到可怕的“未定义”:(...帮助?

html 标记:

<div class="col-md-2">
  <div name="fromDateTime" class="input-group date" id="datetimepickerFrom">
    <input class="form-control" type="text" name="fromDateTime" ng-model="formEntries.fromDateTime"/>
      <span class="input-group-addon" data-ng-click="pickFromDateTime()"><span class="glyphicon glyphicon-calendar" id="calIconFrom"></span></span> 
  </div>
</div>

<div class="col-md-2">
  <div name="toDateTime" class="input-group date" id="datetimepickerTo">          
    <input class="form-control" type="text" name="toDateTime" ng-model="formEntries.toDateTime"/>
      <span class="input-group-addon" data-ng-click="pickToDateTime()"><span class="glyphicon glyphicon-calendar"></span></span>
 </div>
</div>

控制器:

$scope.pickFromDateTime = function () 
   $("#datetimepickerFrom").datetimepicker();
   $("#datetimepickerFrom").datetimepicker().change(function()        
       $(this).data("DateTimePicker").hide();
       console.log($(this).data("DateTimePicker").getDate()); 
   );



$scope.pickToDateTime = function () 
   $("#datetimepickerTo").datetimepicker();
   $("#datetimepickerTo").datetimepicker().change(function() 
       $(this).data("DateTimePicker").hide();
       console.log($(this).data("DateTimePicker").getDate());   
   );


$scope.getData = function() 
    console.log($scope.formEntries.fromDateTime);
    console.log($scope.formEntries.toDateTime);

【问题讨论】:

想正确学习AngularJS?做一两个项目,根本不包括 jQuery 或其他 DOM 操作库。 我在没有 jquery 的情况下开始了这个,我只是不知道如何在没有它的情况下做一个 dattimepicker...如果你这样做,请告诉我。 【参考方案1】:

永远不要在控制器中编写 DOM 或 jQuery 代码。它永远不会正常工作。您必须创建一个指令来执行此操作。该指令将监听您正在使用的任何库中的事件并更新您的模型。 Here is an example of a directive that happens to work with the datepicker。这应该会让你走上正轨。

【讨论】:

以上是关于AngularJS 将 datatimepicker 选择的值绑定到 ng-model的主要内容,如果未能解决你的问题,请参考以下文章

Android自定义DataTimePicker(日期选择器)

DataTimePicker 怎样设置可以不能选择当前日期之后的时间

日期 bootsrtap-datatimepicker and bootstrap-datepicker 控件支持中文

猎豹MFC--DataTimePicker日期时间选择控件CDatatimeCtrl CTime CTimeSpan时间间隔

使用 iframe 将 AngularJS 迁移到 Angular 8

如何将 angularJs 用于动态创建的 HTML(未加载到 DOM)