如何动态设置Angular Bootstrap Datepicker的minMode?
我获得它的唯一方法是:
<input type="text" ng-model="myDate"
uib-datepicker-popup="{{datepickerFormat}}"
datepicker-options="{'minMode': minMode}"/>
在控制器中
...
$scope.minMode='day';
它工作正常,但是当minMode更改并且datepicker重新打开时,我在浏览器控制台中出现$compile:nonassignNon-Assignable错误。所以我想做些类似的事情:
<input type="text" ng-model="myDate"
uib-datepicker-popup="{{datepickerFormat}}"
min-mode="minMode"/>
但是不幸的是,它不再起作用了。
Angular version: 1.5.9
Bootstrap version: 3.3.7
angular-bootstrap version: 1.2.5
See in Plunker
最佳答案
您没有正确放置minMode
值
因为您将选项放置在日期选择器中,然后又使用按钮更改了这些选项,所以需要在控制器中定义该options
对象,并在两个位置都引用该对象。
<div class="input-group">
<input type="text"
ng-model="myDate"
is-open="showDatePicker"
uib-datepicker-popup="mm-dd-yyyy"
datepicker-options="options"/>
</div>
在控制器中
$scope.options = {'showWeeks': false, 'minMode': 'month'};
现在,您可以使用
minMode
表达式更改该ng-click
属性<button ng-click="options.minMode = 'day'" class="btn">Day</button>
<button ng-click="options.minMode = 'month'" class="btn" >Month</button>
Updated plunk