module.controller('MyCtrl', function($scope, $cordovaDatePicker) {
$scope.showDatePicker=function(){
var options = {date: new Date(), mode: 'date'};
//var options = {date: new Date(), mode: 'time'}; for time
$cordovaDatePicker.show(options).then(function(date){
alert(date);
});
};
});
选择日期后不久就会出现警报,但是当我第二次调用showDatePicker时,它会出现,并显示在第一次尝试中选择的日期。
第一次单击时的示例,我选择了 2014 年 12 月 18 日,并在本机日期选取器窗口中选择了确定。它关闭而不显示警报。第二次单击时,它首先显示日期为"2014 年 12 月 18 日"的警报,然后显示日期选择器。
您是否尝试使用香草回调而不是使用承诺?喜欢这个
$cordovaDatePicker.show(options, function(date){
alert(date);
});
更新看了一下来源。看起来你的代码应该是这样的
$q.when($cordovaDatePicker.show(options)).then(function(date){
alert(date);
});
显示方法返回承诺。
我能够通过以正确的顺序加载库来解决此问题。
以前
<script src="cordova.js"></script>`
`<!-- cordova script (this will be a 404 during development) -->
<script src="js/ng-cordova.js"></script>
<script src="cordova.js"></script>`
后
`<!-- cordova script (this will be a 404 during development) -->
<script src="js/ng-cordova.js"></script>
<script src="cordova.js"></script>`
在加载 ng-cordova.js 之前,我错误地多余地包含了<script src="cordova.js"></script>
,删除了那条额外的行,一切正常。由于所有文件都在那里加载,所以我没有收到任何有意义的错误。对代码进行彻底的逐行验证可以帮助修复它。