Angularjs 重新呈现角度ui boostrap日期选择器不一致性

Angularjs 重新呈现角度ui boostrap日期选择器不一致性,angularjs,datepicker,Angularjs,Datepicker,重新呈现datepicker弹出指令时,ui datepicker似乎没有考虑以前选择的模型值 请看一看,选择一个日期,然后选中复选框两次以删除并重新创建datepicker表单字段 日期选择器表单字段值从2014年12月14日更改为2014年12月14日星期日16:21:46 GMT+0100(CET) Anuglar ui日期选择器和ng if测试 放映日期 {{mymodel.namespace.date} //JS app=angular.module('testApp',['ui.b

重新呈现datepicker弹出指令时,ui datepicker似乎没有考虑以前选择的模型值

请看一看,选择一个日期,然后选中复选框两次以删除并重新创建datepicker表单字段

日期选择器表单字段值从2014年12月14日更改为2014年12月14日星期日16:21:46 GMT+0100(CET)


Anuglar ui日期选择器和ng if测试
放映日期
{{mymodel.namespace.date}
//JS
app=angular.module('testApp',['ui.bootstrap']))
app.controller('TestCtrl',函数($scope){
$scope.mymodel={
名称空间:{
日期:新日期(),
显示日期:正确
}
}
})

我能够复制您的错误并修复它

这条线

更改为


两者之间的区别在于,对于ng,如果每次语句的计算结果为true,它都将重新命名该元素。使用ng show类似于使用CSS隐藏它


我发现,如果我所要做的只是隐藏一个元素,直到需要它,我将使用ng show。如果我想阻止渲染某个元素,我将禁用If。

我不确定您描述的问题是什么。每次单击日期,然后单击“关闭选择器”关闭选择器,然后单击文本框上的“上一步”重新打开选择器时,我以前选择的日期都会出现。很抱歉,我的bad没有记录最后版本的plunk,现在更新如果你想看一看打开了github的问题你是对的问题真正涉及到重新渲染,我将改进描述
<form class="form" name="test">
          <legend>Anuglar ui datepicker and ng-if Test</legend>
          <div  class="form-group">
            <label>
              <input type="checkbox" ng-model="mymodel.namespace.showDate"/>
              Show date
            </label>
            <pre>{{mymodel.namespace.date}}</pre>
          </div>
          <div  class="form-group"
                ng-if="mymodel.namespace.showDate === true "
          >

            <input 
              class="form-control" 
              name="date" 
              type="text" 
              ng-model="mymodel.namespace.date" 
              show-weeks="false" 
              show-button-bar="false" 
              is-open="calendarOpened" 
              ng-required="true" 
              ng-click="calendarOpened=true" 
              datepicker-popup />
          </div>
        </form>



// JS
app = angular.module('testApp', ['ui.bootstrap'])


app.controller('TestCtrl', function($scope){
  $scope.mymodel = {
    namespace: {
      date: new Date(),
      showDate: true
    }
  }
})
<div  class="form-group" ng-show="mymodel.namespace.showDate === true ">