当前位置: 首页 > 面试题库 >

角引导日期选择器日期格式未格式化ng-model值

鲁滨海
2023-03-14
问题内容

我在我的角度应用程序中使用引导日期选择器。但是,当我从绑定的该日期选择器基础ng模型中选择一个日期时,该日期会更新,我希望该ng模型以一种“ MM / dd
/ yyyy”日期格式显示。但是每次都会这样约会

"2009-02-03T18:30:00.000Z"

代替

02/04/2009

我为相同的plunkr链接创建了一个plunkr

我的HTML和控制器代码如下

<!doctype html>
<html ng-app="plunker">
  <head>
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.10/angular.js"></script>
    <script src="//angular-ui.github.io/bootstrap/ui-bootstrap-tpls-0.11.0.js"></script>
    <script src="example.js"></script>
    <link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet">
  </head>
  <body>

<div ng-controller="DatepickerDemoCtrl">
    <pre>Selected date is: <em>{{dt | date:'MM/dd/yyyy' }}</em></pre>
    <p>above filter will just update above UI but I want to update actual ng-modle</p>


    <h4>Popup</h4>
    <div class="row">
        <div class="col-md-6">
            <p class="input-group">
              <input type="text" class="form-control"
              datepicker-popup="{{format}}" 
              ng-model="dt"
              is-open="opened" min-date="minDate"
              max-date="'2015-06-22'" 
              datepicker-options="dateOptions" 
              date-disabled="disabled(date, mode)" 
              ng-required="true" close-text="Close" />
              <span class="input-group-btn"> 
                <button type="button" class="btn btn-default" ng-click="open($event)">
                <i class="glyphicon glyphicon-calendar"></i></button>
              </span>
            </p>
        </div>
    </div>
    <!--<div class="row">
        <div class="col-md-6">
            <label>Format:</label> <select class="form-control" ng-model="format" ng-options="f for f in formats"><option></option></select>
        </div>
    </div>-->

    <hr />
    {{dt}}
</div>
  </body>
</html>

角度控制器

angular.module('plunker', ['ui.bootstrap']);
var DatepickerDemoCtrl = function ($scope) {


  $scope.open = function($event) {
    $event.preventDefault();
    $event.stopPropagation();

    $scope.opened = true;
  };

  $scope.dateOptions = {
    formatYear: 'yy',
    startingDay: 1
  };


  $scope.format = 'dd-MMMM-yyyy';
};

在此先感谢您审查我的问题。

更新

我在下面调用发布数据的方法,VAR是大小为900的数组,其中包含日期选择器变量。

public SaveCurrentData(formToSave: tsmodels.ResponseTransferCalculationModelTS) {

        var query = this.EntityQuery.from('SaveFormData').withParameters({
            $method: 'POST',
            $encoding: 'JSON',
            $data: {
                VAR: formToSave.VAR,
                X: formToSave.X,
                CurrentForm: formToSave.currentForm,
            }
        });

        var deferred = this.q.defer();

        this.manager.executeQuery(query).then((response) => {
            deferred.resolve(response);
        }, (error) => {
                deferred.reject(error);
            });

        return deferred.promise;
    }

问题答案:

尽管已经发布了类似的答案,但我还是想为我提供最简单,最干净的解决方案。 假设您使用的是AngularUI日期选择器, 并且ng-
Model的初始值未格式化,只需在项目中添加以下指令即可解决此问题:

angular.module('yourAppName')
.directive('datepickerPopup', function (){
    return {
        restrict: 'EAC',
        require: 'ngModel',
        link: function(scope, element, attr, controller) {
      //remove the default formatter from the input directive to prevent conflict
      controller.$formatters.shift();
  }
}
});

我在Github AngularUI问题中找到了该解决方案,因此所有的荣誉都归功于那里的人们。



 类似资料:
  • 问题内容: 我有一个输入定义为 将其显示在页面的其他位置: 当页面加载时,出生日期的格式很好,类似于。但是,当我查看我的内部时,它显示为我猜想的是JS如何将对象呈现为字符串。 首先,我如何告诉Angular将日期显示为?我似乎无法在属性内应用。 其次,一旦我编辑了日期,即使将其保留为原始格式,我的其他文本(位于中)似乎也不再应用过滤器;它突然更改了格式以匹配输入文本框的格式。如何在每次模型更改时应

  • 问题内容: 我有以下由时间戳记中的模型值填充的文本输入: 它将输入值显示为给定的时间戳。 我想将输入中可见的值转换为格式化日期(YYYY / MM / DD),但在模型中应始终将其作为时间戳记。 我试图通过这种方式做到这一点: 但是没有运气。 感谢您的任何建议。 问题答案: 您可以尝试过滤器 的HTML 控制器JS

  • 我正在尝试将DatePicker日期格式化为简单的数据格式(“yyyy-MM-dd HH: mm: ss Z”)。有人告诉我,我需要使用简单的数据格式将其解析为日期对象-简单的数据格式(“yyyy-MM-dd”),然后将其格式化为我需要的内容,如下所示。但是,我在尝试捕捉块中收到错误“重复局部变量eDate”。任何专家都可以查看我的代码并提出建议吗? 已更新

  • 我想在获得,和。 这是一条漫长的道路: 我的问题:如何将最后一部分压缩到函数? 我想归档的内容: p/s:的含义与标准数字格式字符串相同。像C#语法:

  • 主要内容:DateFormat 类,SimpleDateFormat 类格式化日期表示将日期/时间格式转换为预先定义的日期/时间格式。例如将日期“Fri May 18 15:46:24 CST2016” 格式转换为 “2016-5-18 15:46:24 星期五”的格式。 在 Java 中,可以使用 DateFormat 类和 SimpleDateFormat 类来格式化日期,下面详细介绍这两个格式化日期类的使用。 DateFormat 类 DateFormat 是日

  • Parameter Position Type Required Default Description 1 string No %b %e, %Y This is the format for the outputted date. 输出日期的格式。 2 string No n/a This is the default date if the input is empty. 输入为空时的默认时