gpt4 book ai didi

twitter-bootstrap - 将 datetimepicker 连接到 angularjs

转载 作者:行者123 更新时间:2023-12-04 08:36:30 26 4
gpt4 key购买 nike

我需要使用 angular + bootstrap 创建一个带有日期和时间的输入字段。
我找到了 datetime picker它看起来非常我需要 - 日期和时间在一个字段中,并阻止用户错误的版本。
我写了一个指令,日期选择器开始了,但是它改变了 View 并且模型没有改变......我也尝试了 onSelect,但也没有任何 react

<div class="container container-fluid" ng-controller="Ctrl1">
2+2={{2+2}}, var1={{var1}}
<form class="form-horizontal" novalidate name="form" ng-submit="submit()">
<div class="well">
<div id="date" class="input-append" datetimez ng_model="var1">
<input data-format="MM/dd/yyyy HH:mm:ss PP" type="text" id="input1" name="input1" ng_model="var1"></input>
<span class="add-on">
<i data-time-icon="icon-time" data-date-icon="icon-calendar">
</i>
</span>
</div>
</div>
</form>

</div>

js
var project = angular.module('project',['ui.bootstrap']);

project.directive('datetimez', function() {
return {
restrict: 'A',
require : 'ngModel',
link: function(scope, element, attrs, ngModelCtrl) {
$(function(){
element.datetimepicker({
dateFormat:'dd/MM/yyyy hh:mm:ss',
language: 'pt-BR',
onSelect:function (date) {
//alert('zz');
ngModelCtrl.$setViewValue(date);
scope.$apply();
}
});
});
}
};
});

project.controller('Ctrl1', ['$scope', '$rootScope', function(scope, rootScope){

scope.var1="123";

}]);

如何解决?建立联系?

最佳答案

所以,问题是:

  • 更改 ng_model根据 ng-modeldiv id=date元素;
  • 删除 ng_model来自 input元素和实现ngModelCtrl.$render用于将模型更改渲染到元素
  • 的函数
  • 根据 component docs :

  • The only event exposed is ‘changeDate’, which will expose ‘date’ and ‘localDate’ properties on the event object



    因此,您需要以其他方式处理更改事件,请看:
    element.datetimepicker({
    dateFormat:'dd/MM/yyyy hh:mm:ss',
    language: 'pt-BR'
    }).on('changeDate', function(e) {
    ngModelCtrl.$setViewValue(e.date);
    scope.$apply();
    });

    这是 working Plnkr .

    一些额外的提示:
  • 如前所述,删除内部 ng-model并实现ngModelCtrl.$render处理模型更改
  • 使用 template属性以封装组件的内部元素

  • 使用 $render 的一个非常简单的例子:
    var picker = element.data('datetimepicker');

    ngModelCtrl.$render = function() {
    if (ngModelCtrl.$modelValue) {
    picker.setLocalDate(ngModelCtrl.$modelValue);
    } else {
    picker.setLocalDate(null);
    }
    }

    关于twitter-bootstrap - 将 datetimepicker 连接到 angularjs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19482449/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com