Estou usando o datepicker nos elementos do conjunto de guias debootstrap angular. Quando estou usando o datepicker dentro da guia e ao selecionar a data, não consigo obter o valor correto da data selecionada no controlador.
Se eu estiver removendo a guia, poderei obter a data selecionada no momento. O código está no 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)
};
};
Respostas:
0 para resposta № 1Pode encontrar a demonstração de trabalho abaixo com duas guias: http://embed.plnkr.co/RkLGqy5zZjfCqlCuuNPF/preview
O diretório "Tabset" cria seu próprio escopo isoladodentro do escopo principal com suas próprias propriedades e não herdará propriedades para o pai. Para superar esse problema, como @charlietfl afirmou, devemos usar ponto (.) No modelo ng.
Para melhor compreensão, verifique o https://github.com/angular-ui/bootstrap/issues/1553#issuecomment-31980027
ou
Mais brevemente explicado: https://stackoverflow.com/a/14049482/1252454