在 table 中显示多个 Angular Bootstrap 日期选择器组件
Displaying multiple Angular Bootstrap Datepicker components in a table
我有一个table:
<table class="table " id="Table" width="100%">
<thead>
<tr>
<th>ID</th>
<th>From</th>
<th>To</th>
<th>Total</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="id in inputID">
<td class="col-md-1"> {{ id }} </td>
<td class="col-md-5">
<div class="form-group">
<div class="col-sm-10">
<p class="input-group">
<input type="text" class="form-control" datetime-picker="dd/MM/yyyy HH:mm" ng-model="ctrl.picker4.date" is-open="ctrl.picker4.open" datepicker-options="ctrl.picker4.datepickerOptions" save-as="json"/>
<span class="input-group-btn">
<button type="button" class="btn btn-default" ng-click="ctrl.openCalendar($event, 'picker4')"><i class="fa fa-calendar"></i></button>
</span>
</p>
</div>
</div>
</td>
<td class="col-md-5">
<div class="form-group">
<div class="col-sm-10">
<p class="input-group">
<input type="text" class="form-control" datetime-picker="dd/MM/yyyy HH:mm" ng-model="ctrl.picker5.date" is-open="ctrl.picker5.open" datepicker-options="ctrl.picker5.datepickerOptions" initialPicker='time' save-as="json" />
<span class="input-group-btn">
<button type="button" class="btn btn-default" ng-click="ctrl.openCalendar($event, 'picker5')"><i class="fa fa-calendar"></i></button>
</span>
</p>
</div>
</div>
</td>
<td class="col-md-1">
<p class="form-control-static">{{ ctrl.timeRange }} (minutes)</p>
</td>
</tr>
</tbody>
</table>
我在其中一个 table 单元格中使用 Datepicker from Angular UI Bootstrap。
当我单击一行中的日历图标并选择一天时,所有行都将替换为表示日期选择器值的字符串值。
您可以将日期选择器移动到具有独立作用域的指令中。这将使它成为一个不受其他组件影响的组件。
这是一个基于您的示例的有效 Plunker:
http://plnkr.co/edit/K0eVeR?p=preview
在Plunker中注意,左边的人使用组件并独立工作。右边的都是老办法,互相干扰。
我添加的主要代码在JS中:
app.directive('myDatePicker', function() {
return {
template: '<p class="input-group">'+
'<input ng-init="isOpen=false" type="text" class="form-control" datetime-picker="dd/MM/yyyy HH:mm" ng-model="date" is-open="isOpen" datepicker-options="datepickerOptions" save-as="json"/>' +
'<span class="input-group-btn">' +
'<button type="button" class="btn btn-default" ng-click="isOpen=!isOpen"><i class="fa fa-calendar"></i></button>' +
'</span></p>',
restrict: 'E',
scope: {
date: "=",
datepickerOptions: "="
}
};
});
我有一个table:
<table class="table " id="Table" width="100%">
<thead>
<tr>
<th>ID</th>
<th>From</th>
<th>To</th>
<th>Total</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="id in inputID">
<td class="col-md-1"> {{ id }} </td>
<td class="col-md-5">
<div class="form-group">
<div class="col-sm-10">
<p class="input-group">
<input type="text" class="form-control" datetime-picker="dd/MM/yyyy HH:mm" ng-model="ctrl.picker4.date" is-open="ctrl.picker4.open" datepicker-options="ctrl.picker4.datepickerOptions" save-as="json"/>
<span class="input-group-btn">
<button type="button" class="btn btn-default" ng-click="ctrl.openCalendar($event, 'picker4')"><i class="fa fa-calendar"></i></button>
</span>
</p>
</div>
</div>
</td>
<td class="col-md-5">
<div class="form-group">
<div class="col-sm-10">
<p class="input-group">
<input type="text" class="form-control" datetime-picker="dd/MM/yyyy HH:mm" ng-model="ctrl.picker5.date" is-open="ctrl.picker5.open" datepicker-options="ctrl.picker5.datepickerOptions" initialPicker='time' save-as="json" />
<span class="input-group-btn">
<button type="button" class="btn btn-default" ng-click="ctrl.openCalendar($event, 'picker5')"><i class="fa fa-calendar"></i></button>
</span>
</p>
</div>
</div>
</td>
<td class="col-md-1">
<p class="form-control-static">{{ ctrl.timeRange }} (minutes)</p>
</td>
</tr>
</tbody>
</table>
我在其中一个 table 单元格中使用 Datepicker from Angular UI Bootstrap。 当我单击一行中的日历图标并选择一天时,所有行都将替换为表示日期选择器值的字符串值。
您可以将日期选择器移动到具有独立作用域的指令中。这将使它成为一个不受其他组件影响的组件。
这是一个基于您的示例的有效 Plunker: http://plnkr.co/edit/K0eVeR?p=preview
在Plunker中注意,左边的人使用组件并独立工作。右边的都是老办法,互相干扰。
我添加的主要代码在JS中:
app.directive('myDatePicker', function() {
return {
template: '<p class="input-group">'+
'<input ng-init="isOpen=false" type="text" class="form-control" datetime-picker="dd/MM/yyyy HH:mm" ng-model="date" is-open="isOpen" datepicker-options="datepickerOptions" save-as="json"/>' +
'<span class="input-group-btn">' +
'<button type="button" class="btn btn-default" ng-click="isOpen=!isOpen"><i class="fa fa-calendar"></i></button>' +
'</span></p>',
restrict: 'E',
scope: {
date: "=",
datepickerOptions: "="
}
};
});