Javascript 通过模型初始化datetimepicker上的日期
我正在尝试使用角度日期时间选择器。问题是我正在从模型加载数据,选择器似乎没有绑定值 如果我只是手动将该值设置为日期,它会工作,但是当从模型加载该值时,它不会将选择器设置为正确的值 我在用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'; });
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以显示字符串是如何直接工作的。