无法读取 属性 的未定义 bootstrap eonasdan datetimepicker
Cannot read property of undefined bootstrap eonasdan datetimepicker
我正在使用 eonasdan datetimepicker,但无法从 Angular 控制器访问数据功能。
下面的代码生成"TypeError: Cannot read property 'setValue' of undefined"
var d = new Date();
d.setHours(d.getHours() - 8);
m = moment(d);
$("#datetimepicker").data("DateTimePicker").setValue(m);
由于onChange事件是在下一段代码中触发的,所以问题不在选择器中。
$("#datetimepicker").on("dp.change", function (e) {
console.log(e.date._d););
});
我发现 bootstrap-datetimepicker.js 定义了 DateTimePicker 数据,并且它实现了 setValue 函数。
if (!$this.data('DateTimePicker')) {
// create a private copy of the defaults object
options = $.extend(true, {}, $.fn.datetimepicker.defaults, options);
$this.data('DateTimePicker', dateTimePicker($this, options));
}
setValue = function (targetMoment)
我做错了什么?
问题是我在 DOM 之外调用了 $("#datetimepicker").data("DateTimePicker")
。
通过实现一个具有独立作用域的指令来解决,以便将 Ng 模型绑定到 datetimepicker。
.directive('timepicker', [
function () {
var link;
link = function (scope, element, attr, ngModel) {
element = $(element);
element.datetimepicker({
locale: 'sv',
inline: true,
sideBySide: true,
stepping: 30,
defaultDate: scope.date
});
element.on('dp.change', function (event) {
scope.$apply(function () {
scope.date = event.date._d;;
});
});
};
return {
restrict: 'A',
scope: {
date: '=ngModel'
},
link: link
};
}
])
正如 K.Toress 解释的那样 。
我正在使用 eonasdan datetimepicker,但无法从 Angular 控制器访问数据功能。
下面的代码生成"TypeError: Cannot read property 'setValue' of undefined"
var d = new Date();
d.setHours(d.getHours() - 8);
m = moment(d);
$("#datetimepicker").data("DateTimePicker").setValue(m);
由于onChange事件是在下一段代码中触发的,所以问题不在选择器中。
$("#datetimepicker").on("dp.change", function (e) {
console.log(e.date._d););
});
我发现 bootstrap-datetimepicker.js 定义了 DateTimePicker 数据,并且它实现了 setValue 函数。
if (!$this.data('DateTimePicker')) {
// create a private copy of the defaults object
options = $.extend(true, {}, $.fn.datetimepicker.defaults, options);
$this.data('DateTimePicker', dateTimePicker($this, options));
}
setValue = function (targetMoment)
我做错了什么?
问题是我在 DOM 之外调用了 $("#datetimepicker").data("DateTimePicker")
。
通过实现一个具有独立作用域的指令来解决,以便将 Ng 模型绑定到 datetimepicker。
.directive('timepicker', [
function () {
var link;
link = function (scope, element, attr, ngModel) {
element = $(element);
element.datetimepicker({
locale: 'sv',
inline: true,
sideBySide: true,
stepping: 30,
defaultDate: scope.date
});
element.on('dp.change', function (event) {
scope.$apply(function () {
scope.date = event.date._d;;
});
});
};
return {
restrict: 'A',
scope: {
date: '=ngModel'
},
link: link
};
}
])
正如 K.Toress 解释的那样