6

我想设置日期选取器作为月份选取器工作。只要你点击一个月和/或上一年/下一年,一切都按预期工作。但是,如果您想通过点击当前年份来扩大年份选择范围,则会发生JavaScript错误。Angular UI Bootstrap monthpicker

HTML:

<div ng-app="app"> 
    <div ng-controller="TestController"> 
     <input type="date" class="form-control" ng-model="date" datepicker-popup="MM/yyyy" is_open="date_opened" ng-focus="date_opened = true" ng-click="date_opened = true" datepicker-options="datepickerOptions"> 
    </div> 
</div> 

JS:

(function() { 
    'use strict'; 

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

    app.controller('TestController', ['$scope', function($scope) { 
     $scope.datepickerOptions = { 
      datepickerMode: "'month'", 
      minMode: 'month' 
     }; 
    }]); 
})(); 

这里的JSFiddle证明它(angularjs 1.2.26,UI的自举0.11.2)。

回答

2

原来你需要在控制器中明确定义的日期选择器模式:

$scope.datepickerMode = 'month'; 

,然后用它作为一个属性:

datepicker-mode="datepickerMode" 
2

让尽可能强调意见如下更改:

(function() { 
'use strict'; 

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

app.controller('TestController', ['$scope', function($scope) { 
    $scope.datepickerOptions = { 
     datepickerMode: "month",  // Remove Single quotes 
     minMode: 'month' 
    }; 
}]); 

})();

+0

这只打破了最初的日期选择器模式... – valmarv 2014-10-20 13:20:14

+0

可以请你解释一下在这种情况下会发生什么? – 2014-10-21 08:59:41

+0

日期选择器在白天模式下打开,在小提琴中尝试。谢谢! – valmarv 2014-10-21 12:10:08

相关问题