Jquery 第二次选择时,angularjs引导日期选择器值未更改
目前我正在为angularjs开发一个日期采集器,该采集器按预期工作。但当我第二次尝试从datepicker中选择值时,该值并没有改变。以下是迄今为止我尝试过的代码片段:- HTML 我还在select下拉列表的selectionchanged事件中将datepicker值设置为空字符串,如下所示:-Jquery 第二次选择时,angularjs引导日期选择器值未更改,jquery,angularjs,html,twitter-bootstrap-3,Jquery,Angularjs,Html,Twitter Bootstrap 3,目前我正在为angularjs开发一个日期采集器,该采集器按预期工作。但当我第二次尝试从datepicker中选择值时,该值并没有改变。以下是迄今为止我尝试过的代码片段:- HTML 我还在select下拉列表的selectionchanged事件中将datepicker值设置为空字符串,如下所示:- $scope.FromDate = ''; $scope.ToDate = ''; 将下拉值设置为空字符串后,每当我从datepicker中选择任何值时,该值都将变为null。 任何帮助都将不胜
$scope.FromDate = '';
$scope.ToDate = '';
将下拉值设置为空字符串后,每当我从datepicker中选择任何值时,该值都将变为null。
任何帮助都将不胜感激。如果您查看plnkr中的控制台,您将看到jquery没有正确加载 看这个plnkr。它并不完美,但会给你一个开始 HTML
AngularJs日期选择器
从日期开始
从日期开始
如果查看plnkr中的控制台,就会发现jquery没有正确加载
看这个plnkr。它并不完美,但会给你一个开始
HTML
AngularJs日期选择器
从日期开始
从日期开始
在bootstrap-datepicker.js文件中,我用以下方法注释掉了行:
notifyEvent = function (e) {
//if (e.type === 'dp.change' && ((e.date && e.date.isSame(e.oldDate)) || (!e.date && !e.oldDate))) {
// return;
//}
element.trigger(e);
},
现在,每当我再次选择相同的日期,值绑定就可以正常工作。请参阅更新的plunker:
在bootstrap-datepicker.js文件中,我用以下方法注释掉了行:
notifyEvent = function (e) {
//if (e.type === 'dp.change' && ((e.date && e.date.isSame(e.oldDate)) || (!e.date && !e.oldDate))) {
// return;
//}
element.trigger(e);
},
现在,每当我再次选择相同的日期,值绑定就可以正常工作。请参阅更新的plunker:
你能创建一个提琴吗?创建提琴请看提琴:-我想看到每当我从DatePicker选择日期时文本输入的变化。你应该看看如何将jquery插件转换为angular指令。有很多资源可以帮助你更好地理解你想要实现的目标。像您这样混合jquery和angular不是正确的方法!另外,请看一下如何在directive中访问父作用域您可以创建一个fiddle吗?创建fiddle请看fiddle:-我想看一下每当我选择date from date Picker时文本输入的变化。您应该看一下如何将jquery插件转换为angular指令。有很多资源可以帮助你更好地理解你想要实现的目标。像您这样混合jquery和angular不是正确的方法!另外,请查看如何在directiveUpdated plunker:[Updated plunker]()1中访问父作用域。选择一个日期,您可以在输入框2上看到该值。单击重置按钮3。再次选择问题出现之前选择的相同日期,此时您无法看到该值。以下是更新的plunkerdp.change仅在更改日期值时触发,选择相同的日期不会更改选择器中存储的值。您应该改用dp.hide事件。更新的plunker:[更新的plunker]()1。选择一个日期,您可以在输入框2上看到该值。单击重置按钮3。再次选择问题出现之前选择的相同日期,此时您无法看到该值。以下是更新的plunkerdp.change仅在更改日期值时触发,选择相同的日期不会更改选择器中存储的值。您应该改用dp.hide事件。
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope) {
$scope.model = {};
$scope.model.FromDate1 = "5/5/2016";
});
app.directive('datetimepicker', function($timeout) {
return {
restrict: 'A',
scope: { },
link: function (scope, element, attrs) {
angular.element(element).datepicker({
format: 'DD/MM/YYYY',
onClose: function(dateText, inst){
$timeout(function(){scope.$parent.model.FromDate1 = dateText});
console.log(scope.$parent.model.FromDate1);
console.log(dateText);
}
});
}
}
});
<body ng-controller="MainCtrl">
<h3>AngularJs Date Picker</h3>
<div class="col-xs-5">
<div class="form-group">
<label>From Date</label>
<input type="text" class="form-control" id="dp1" datetimepicker />
</div>
<div>From Date<input type="text" ng-model="model.FromDate1"/></div>
</div>
</body>
notifyEvent = function (e) {
//if (e.type === 'dp.change' && ((e.date && e.date.isSame(e.oldDate)) || (!e.date && !e.oldDate))) {
// return;
//}
element.trigger(e);
},