Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过模型初始化datetimepicker上的日期_Javascript_Angularjs_Angularjs Directive - Fatal编程技术网

Javascript 通过模型初始化datetimepicker上的日期

Javascript 通过模型初始化datetimepicker上的日期,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,我正在尝试使用角度日期时间选择器。问题是我正在从模型加载数据,选择器似乎没有绑定值 如果我只是手动将该值设置为日期,它会工作,但是当从模型加载该值时,它不会将选择器设置为正确的值 我在用datetimepicker来计算角度 角度: var app = angular.module('plunker', []); app.controller('MainCtrl', function($scope) { $scope.date = '01/02/1983 01:02:03'; });

我正在尝试使用角度日期时间选择器。问题是我正在从模型加载数据,选择器似乎没有绑定值

如果我只是手动将该值设置为日期,它会工作,但是当从模型加载该值时,它不会将选择器设置为正确的值

我在用datetimepicker来计算角度

角度:

var app = angular.module('plunker', []);

app.controller('MainCtrl', function($scope) {
  $scope.date = '01/02/1983 01:02:03';
});


app.directive('datetimez', function() {
    return {
        restrict: 'A',
        require : 'ngModel',
        link: function(scope, element, attrs, ngModelCtrl) {
          element.datetimepicker({
            dateFormat:'dd/MM/yyyy',
            timeFormat: 'hh:mm:ss',
          }).on('changeDate', function(e) {
            ngModelCtrl.$setViewValue(e.date);
            scope.$apply();
          });
        }
    };
});
<div class="container container-fluid" ng-controller="MainCtrl">
  2+2={{2+2}}, var1={{var1}}
  <form class="form-horizontal" novalidate name="form" ng-submit="submit()">
  <div class="well">
    <div id="date" class="input-append" datetimez ng-model="var1">
      <input data-format="dd/MM/yyyy hh:mm:ss" type="text" ng-value="date"></input>
      <span class="add-on">
        <i data-time-icon="icon-time" data-date-icon="icon-calendar"></i>
      </span>
    </div>
  </div>
HTML:

var app = angular.module('plunker', []);

app.controller('MainCtrl', function($scope) {
  $scope.date = '01/02/1983 01:02:03';
});


app.directive('datetimez', function() {
    return {
        restrict: 'A',
        require : 'ngModel',
        link: function(scope, element, attrs, ngModelCtrl) {
          element.datetimepicker({
            dateFormat:'dd/MM/yyyy',
            timeFormat: 'hh:mm:ss',
          }).on('changeDate', function(e) {
            ngModelCtrl.$setViewValue(e.date);
            scope.$apply();
          });
        }
    };
});
<div class="container container-fluid" ng-controller="MainCtrl">
  2+2={{2+2}}, var1={{var1}}
  <form class="form-horizontal" novalidate name="form" ng-submit="submit()">
  <div class="well">
    <div id="date" class="input-append" datetimez ng-model="var1">
      <input data-format="dd/MM/yyyy hh:mm:ss" type="text" ng-value="date"></input>
      <span class="add-on">
        <i data-time-icon="icon-time" data-date-icon="icon-calendar"></i>
      </span>
    </div>
  </div>

2+2={{2+2}},var1={{{var1}

这是因为您使用的是字符串而不是日期对象:

app.controller('MainCtrl', function($scope) {
  var date = new Date(1983, 1, 2, 1, 2);
  $scope.date = date;
});


那不行。那辆破车仍然坏了。另外,当我将值作为字符串直接传递给value标记时,它会工作(这意味着它不会从模型中提取它)。我已经更新了plunker以显示字符串是如何直接工作的。