`
weitao1026
  • 浏览: 1064771 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

angular ui-bootstrap日期控件如何显示成中文

 
阅读更多

1.引入中文国际化文件angular-locale_zh-cn.js 

      下载地址(https://github.com/angular/angular.js/tree/master/src/ngLocale),  然后大部分控件就可以显示中文了。

2.有些按钮(today,clear,close)还不能显示中文

   比较简易的做法是在datepicker-popup指令定义的地方,增加属性current-text,clear-text,close-text的定义

 

   例如:current-text="今天" 

[html] view plain copy
 
print?
  1. <div class="col-md-6">  
  2.      <p class="input-group">  
  3.        <input type="date" class="form-control" current-text="今天"  datepicker-popup 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" />  
  4.        <span class="input-group-btn">  
  5.          <button type="button" class="btn btn-default" ng-click="open($event)"><i class="glyphicon glyphicon-calendar"></i></button>  
  6.        </span>  
  7.      </p>  
  8.  </div>  
       <div class="col-md-6">
            <p class="input-group">
              <input type="date" class="form-control" current-text="今天"  datepicker-popup 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>
 
---------------------------------------分隔----------------------自定义的话-----------------------------

3. 除了上述的做法,也可以自己修改源文件。

   有些按钮(today,clear,close)还不能显示中文,以下是我对官方文件的修改。

   3.1) 需要修改angular-locale_zh-cn.js ,对DATETIME_FORMATS增加三个中文键值对:

     

[javascript] view plain copy
 
print?
  1. "DATETIME_FORMATS": {  
  2.      "TODAY":"\u4eca\u5929",  
  3.      "CLEAR":"\u6e05\u7a7a",  
  4.      "CLOSE":"\u5173\u95ed",  
         "DATETIME_FORMATS": {
              "TODAY":"\u4eca\u5929",
              "CLEAR":"\u6e05\u7a7a",
              "CLOSE":"\u5173\u95ed",

 

   3.2)还不行,today,clear,close等按钮还不能国际化,还需修改ui-bootstrap-tpls-0.13.0.js

       主要修改的ui-bootstrap-tpls-0.13.0.js文件中指令datepickerPopup具体修改以下部分:

               修改 ui-bootstrap-tpls-0.13.0.js的指令datepickerPopup

               指令datepickerPopup的定义依赖增加$locale,并新加以下片段

              

[javascript] view plain copy
 
print?
  1. scope['currentText']=$locale.DATETIME_FORMATS.TODAY||scope['currentText'];  
  2. scope['clearText']=$locale.DATETIME_FORMATS.CLEAR||scope['clearText'];  
  3. scope['closeText']=$locale.DATETIME_FORMATS.CLOSE||scope['closeText'];  
               scope['currentText']=$locale.DATETIME_FORMATS.TODAY||scope['currentText'];
               scope['clearText']=$locale.DATETIME_FORMATS.CLEAR||scope['clearText'];
               scope['closeText']=$locale.DATETIME_FORMATS.CLOSE||scope['closeText'];

 

指令参照位置:

 

[javascript] view plain copy
 
print?
  1. .directive('datepickerPopup', ['$locale','$compile''$parse''$document''$position''dateFilter''dateParser''datepickerPopupConfig',  
  2. function ($locale,$compile, $parse, $document, $position, dateFilter, dateParser, datepickerPopupConfig) {  
  3.   return {  
  4.     restrict: 'EA',  
  5.     require: 'ngModel',  
  6.     scope: {  
  7.       isOpen: '=?',  
  8.       currentText: '@',  
  9.       clearText: '@',  
  10.       closeText: '@',  
  11.       dateDisabled: '&',  
  12.       customClass: '&'  
  13.     },  
  14.     link: function(scope, element, attrs, ngModel) {  
  15.       
  16.       var dateFormat,  
  17.           closeOnDateSelection = angular.isDefined(attrs.closeOnDateSelection) ? scope.$parent.$eval(attrs.closeOnDateSelection) : datepickerPopupConfig.closeOnDateSelection,  
  18.           appendToBody = angular.isDefined(attrs.datepickerAppendToBody) ? scope.$parent.$eval(attrs.datepickerAppendToBody) : datepickerPopupConfig.appendToBody;  
  19.   
  20.       scope.showButtonBar = angular.isDefined(attrs.showButtonBar) ? scope.$parent.$eval(attrs.showButtonBar) : datepickerPopupConfig.showButtonBar;  
  21.   
  22.       scope.getText = function( key ) {  
  23.              
  24.           scope['currentText']=$locale.DATETIME_FORMATS.TODAY||scope['currentText'];  
  25.           scope['clearText']=$locale.DATETIME_FORMATS.CLEAR||scope['clearText'];  
  26.           scope['closeText']=$locale.DATETIME_FORMATS.CLOSE||scope['closeText'];  
  27.         return scope[key + 'Text'] || datepickerPopupConfig[key + 'Text'];  
  28.       };  
.directive('datepickerPopup', ['$locale','$compile', '$parse', '$document', '$position', 'dateFilter', 'dateParser', 'datepickerPopupConfig',
function ($locale,$compile, $parse, $document, $position, dateFilter, dateParser, datepickerPopupConfig) {
  return {
    restrict: 'EA',
    require: 'ngModel',
    scope: {
      isOpen: '=?',
      currentText: '@',
      clearText: '@',
      closeText: '@',
      dateDisabled: '&',
      customClass: '&'
    },
    link: function(scope, element, attrs, ngModel) {
    
      var dateFormat,
          closeOnDateSelection = angular.isDefined(attrs.closeOnDateSelection) ? scope.$parent.$eval(attrs.closeOnDateSelection) : datepickerPopupConfig.closeOnDateSelection,
          appendToBody = angular.isDefined(attrs.datepickerAppendToBody) ? scope.$parent.$eval(attrs.datepickerAppendToBody) : datepickerPopupConfig.appendToBody;

      scope.showButtonBar = angular.isDefined(attrs.showButtonBar) ? scope.$parent.$eval(attrs.showButtonBar) : datepickerPopupConfig.showButtonBar;

      scope.getText = function( key ) {
           
          scope['currentText']=$locale.DATETIME_FORMATS.TODAY||scope['currentText'];
          scope['clearText']=$locale.DATETIME_FORMATS.CLEAR||scope['clearText'];
          scope['closeText']=$locale.DATETIME_FORMATS.CLOSE||scope['closeText'];
        return scope[key + 'Text'] || datepickerPopupConfig[key + 'Text'];
      };

 

          你可以参照我的github fork的分支作的修改,直接拷贝对应指令: 

          https://github.com/napoleonjk/bootstrap/blob/master/src/datepicker/datepicker.js 

分享到:
评论

相关推荐

    angularjs ui-grid datepicker 日期控件

    8. **依赖注入**: 使用UI-Grid的DatePicker功能,可能需要引入其他AngularJS模块,如`ngDatepicker`或`ui.bootstrap.datepicker`。确保正确地在应用中注入这些依赖,以避免运行时错误。 9. **响应式设计**: 如果你...

    Angular4-bootstrap 后端ui框架

    6. **Bootstrap组件**:熟悉Bootstrap提供的各种UI组件,如导航条、下拉菜单、模态框、表单控件等,并学会在Angular4中使用它们。 7. **Angular4 CLI**:学习如何使用命令行工具创建项目、生成组件和服务,以及进行...

    angle-angular4-bootstrap

    例如,可以使用 Angular 的 ngIf 和 ngFor 指令控制 Bootstrap 组件的显示和重复,或者使用 Angular Forms 配合 Bootstrap 的表单控件实现动态验证。 4. **Angle 项目**:虽然 Angle 不是官方的 Angular 组件库,但...

    详解Angular-ui-BootStrap组件的解释以及使用

    现在回到Angular-ui-BootStrap组件,这个库包含了多种Bootstrap组件的Angular实现,例如模态框、下拉菜单、按钮组、警告、表单控件等。下面我们将详细讨论其中的`uib-tooltip`组件。 `uib-tooltip`是Angular-ui-...

    angularjs和bootstrap开发的web控件的集合

    标题提到的"angularjs和bootstrap开发的web控件的集合"很可能是一个包含多种AngularJS插件的资源包,旨在帮助开发者更容易地集成Bootstrap的UI元素到AngularJS项目中。 **ng-control-master简介** "ng-control-...

    前端项目-ng-bootstrap.zip

    在ng-bootstrap中,你可以找到诸如模态框、下拉菜单、导航条、按钮、表单控件、警告提示等Bootstrap经典组件的Angular实现。它们都遵循Angular的模块化设计,可以轻松地被导入到你的Angular应用中。例如,要添加一个...

    ui-datetimepicker:基于 Angular UI Bootstrap 的日期时间选择器指令

    “ui-datetimepicker”指令是Angular UI Bootstrap的一部分,它扩展了AngularJS的表单控件,添加了一个交互式的日期时间选择器。这个选择器提供了日历和时钟视图,用户可以通过这些视图轻松选择日期和时间。它支持...

    angular常用插件

    - angular-ui-tab-scroll:一个可滚动的标签插件,与angular-ui-bootstrap的标签兼容。 - ui-router-tabs:一个支持路由的AngularJS标签面板库。 - Tabslet:虽然这不是一个Angular插件,但可以通过封装来使用,...

    angularjs下拉树控件

    在Web开发中,下拉树是一种UI控件,它将传统的下拉列表与树状结构相结合。用户可以展开和折叠节点,就像在普通的树视图中那样,同时也可以通过下拉方式选择一个节点。这种控件常用于展示层级关系的数据,如目录结构...

    Angular ui.bootstrap.pagination分页

    在本文中,我们将深入探讨Angular框架中的ui.bootstrap.pagination模块,这是一个用于实现分页功能的库,它是Angular UI Bootstrap的一部分。Angular UI Bootstrap是一个基于Bootstrap样式和组件的AngularJS库,它为...

    商业编程-源码-日期控件演示及源码.zip

    在IT行业中,日期控件是用户界面(UI)设计中不可或缺的一部分,特别是在处理与时间相关的数据和业务逻辑时。这个“商业编程-源码-日期控件演示及源码.zip”压缩包很可能是包含了用于创建和展示日期选择功能的源代码...

    angularTableDemo:包含使用 Angular、Bootstrap 和 Bootstrap-ui 进行过滤、排序和分页的数据表

    为了按日期范围过滤,您将使用一个包含 2 个来自 Bootstrap-ui 的日期选择器小部件的模式窗口。 排序(按 1 列)。 单击标题标题会触发排序(升序/降序)。 表格条目最初按日期降序排序。 分页(使用 Bootstrap-...

    material-dashboard-angular2-master_javascript_Free!_js_material_

    【描述】"Material Dashboard Angular是免费的Material Bootstrap Admin模板,带有新鲜"指出这个项目结合了Material Design和Bootstrap框架,为开发后台管理界面提供了直观和美观的解决方案。"新鲜"可能意味着它采用...

    使用Angular和ng-bootstrap创建一个输入地址

    Angular是一个强大的前端开发框架,而ng-bootstrap则是Angular生态中专为Bootstrap设计的UI组件库,它提供了许多易于使用的Bootstrap组件,使我们能够在Angular应用中轻松实现响应式设计。 首先,我们需要确保已经...

    ej2-angular-ui-components:Syncfusion Angular UI组件库提供了50多种跨浏览器,响应式和轻量级的角度UI控件,用于构建现代Web应用程序

    Syncfusion Angular UI组件库(Essential JS 2) Syncfusion Angular UI组件库是从头开始构建的,它轻巧,响应Swift,模块化且易于触摸。 它提供了每个应用程序都将需要的50多个UI组件。 这是一种商业产品,需要付费...

    angular-bootstrap

    Angular Bootstrap 模块(通常称为 ng-bootstrap 或 @ng-bootstrap/ng-bootstrap)将 Bootstrap 的组件转换为 Angular 的指令和服务,使它们能够无缝地工作在 Angular 应用中。 ### 安装 Angular Bootstrap 要在 ...

    仿Angular Bootstrap TimePicker创建分钟数-秒数的输入控件

    在Angular Bootstrap UI中有一个类似的控件TimePicker,但是它并没有深入到分钟和秒的精度。 因此,决定参考它的源码然后自己进行实现。  最终的效果如下:   首先是该directive的定义: app.directive('...

    norch-bootstrap:基于 Angular 和 Bootstrap 的 Forage 可插拔前端

    Bootstrap则是一个流行的前端UI工具包,提供了一系列预设的CSS样式、JavaScript组件和字体图标,旨在简化网页设计和布局。 【描述详解】 “基于 Angular 和 Bootstrap 的 Norch 可插拔前端”表明norch-bootstrap...

    最好的日期控件最好的日期控件

    具体到“最好的日期控件”,虽然没有绝对的标准,但有一些知名库和框架如jQuery UI的Datepicker、Bootstrap的Datetimepicker、Angular的AngularJS Datepicker、React的Material-UI Datepicker以及原生JavaScript的...

Global site tag (gtag.js) - Google Analytics