带有动态minMode的uib-datepicker-popup

时间:2016-12-02 19:15:15

标签: javascript angularjs datepicker angular-ui-bootstrap

如何动态设置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

1 个答案:

答案 0 :(得分:1)

您没有正确放置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> 属性
from ast import literal_eval

with open("name of file") as fh:
    data = [literal_eval(line) for line in fh]

Updated plunk