我在angular bootstrap的tabset元素中使用了datepicker。当我在选项卡中使用datepicker并选择日期时,我无法在控制器中获得所选日期的正确值。
如果我删除标签,那么我可以获得当前选择的日期。 代码是plunker: http://plnkr.co/edit/dIJRDQUYdrKmChdIt9T2?p=preview
<form name="form" class="form-horizontal" ng-controller="ctrl">
<tabset>
<tab justified="true">
<tab-heading>
Main
</tab-heading>
<div class="form-group">
<label class="col-xs-2 control-label" for="etaDate">ETA Date</label>
<div class="input-group col-xs-6 col-sm-4 col-md-2">
<input class="form-control" id="etaDate" name="etaDate" type="text" ng-model="eta" datepicker-popup="dd/MM/yyyy" is-open="opened.open" show-weeks="false" />
<span class="input-group-btn">
<button class="btn btn-default" ng-click="open($event)"><i class="glyphicon glyphicon-calendar"></i></button>
</span>
</div>
</div>
<button ng-click="getdate()">GET DATE</button>
</tab>
</tabset>
</form>
的script.js
angular.module('myApp', ['ui.bootstrap']);
var ctrl = function($scope) {
$scope.opened = {};
$scope.open = function($event) {
$event.preventDefault();
$event.stopPropagation();
$scope.opened.open = true;
};
$scope.eta = new Date();
$scope.getdate = function (){
alert($scope.eta)
};
};
答案 0 :(得分:0)
可以使用两个标签找到下面的工作演示: http://embed.plnkr.co/RkLGqy5zZjfCqlCuuNPF/preview
“Tabset”目录在主范围内创建自己的独立范围,具有自己的属性,不会将属性继承到父级。为了解决这个问题,正如@charlietfl所说,我们应该在ng-model中使用点(。)。
为了更好地理解,请查看https://github.com/angular-ui/bootstrap/issues/1553#issuecomment-31980027
或