Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 带有动态模式的uib日期选择器弹出窗口_Javascript_Angularjs_Datepicker_Angular Ui Bootstrap - Fatal编程技术网

Javascript 带有动态模式的uib日期选择器弹出窗口

Javascript 带有动态模式的uib日期选择器弹出窗口,javascript,angularjs,datepicker,angular-ui-bootstrap,Javascript,Angularjs,Datepicker,Angular Ui Bootstrap,如何动态设置Angular Bootstrap Datepicker的minMode 我得到它的唯一方法是: <input type="text" ng-model="myDate" uib-datepicker-popup="{{datepickerFormat}}" datepicker-options="{'minMode': minMode}"/> 它工作得很好,但是当minMode更改并且datepicker重新打开时,浏览器控制台中出现了一个

如何动态设置Angular Bootstrap Datepicker的minMode

我得到它的唯一方法是:

<input type="text" ng-model="myDate"
       uib-datepicker-popup="{{datepickerFormat}}"
       datepicker-options="{'minMode': minMode}"/>
它工作得很好,但是当minMode更改并且datepicker重新打开时,浏览器控制台中出现了一个错误。所以我想做一些类似的事情:

<input type="text" ng-model="myDate"
       uib-datepicker-popup="{{datepickerFormat}}"
       min-mode="minMode"/>

您没有正确放置
minMode

由于将选项放置在日期选择器中,然后使用按钮更改这些选项,因此需要在控制器中定义该
选项
对象,并在两个位置引用它

<div class="input-group">
    <input type="text"
        ng-model="myDate"
        is-open="showDatePicker"
        uib-datepicker-popup="mm-dd-yyyy"
        datepicker-options="options"/>
</div>
现在,您可以使用
ng click
表达式更改
minMode
属性

<button ng-click="options.minMode = 'day'" class="btn">Day</button>
<button ng-click="options.minMode = 'month'" class="btn" >Month</button>
天
月

添加plunkr,这将是可观的……谢谢。我编辑谢谢你!你帮我找到解决办法。我必须调用一个方法,在单击按钮时更改整个选项对象。当我按照您的建议进行操作时,日期选择器会更改最小模式,但当我在其他模式下单击时不会再次更改,我不知道为什么。请尝试打印以控制您的选项对象,查看您是否更改了
minMode
是否正确。我现在知道发生了什么。你的解决方案是正确的。我认为它不起作用,因为当你选择“年”时,例如,在“天”之后,日期选择器将在年选择中打开第一个。但现在我看到,如果我选择一年,它允许我选择一个月和一天。非常感谢你。
<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'};
<button ng-click="options.minMode = 'day'" class="btn">Day</button>
<button ng-click="options.minMode = 'month'" class="btn" >Month</button>