日期选择器更改事件抛出”;TypeError:字符串不是函数;
Datepicker change event throwing "TypeError: string is not a function"
我正在尝试将KnockoutJS与jQuery UI一起使用。我有一个附带了日期选择器的input
元素。我使用的是Knockout-3-2-0.js。每次更新日期选择器时,它绑定的变量只会抛出以下异常。
未捕获的类型错误:字符串不是函数
我已经检查了变量,并且传递的数据是字符串值。
ko.bindingHandlers.datepicker = {
init: function(element, valueAccessor, allBindingsAccessor) {
var $el = $(element);
//initialize datepicker with some optional options
var options = allBindingsAccessor().datepickerOptions || {};
$el.datepicker(options);
//handle the field changing
ko.utils.registerEventHandler(element, "change", function() {
var observable = valueAccessor();
observable($el.datepicker("getDate"));
});
//handle disposal (if KO removes by the template binding)
ko.utils.domNodeDisposal.addDisposeCallback(element, function() {
$el.datepicker("destroy");
});
},
update: function(element, valueAccessor) {
var value = ko.utils.unwrapObservable(valueAccessor()),
$el = $(element),
current = $el.datepicker("getDate");
if (value - current !== 0) {
$el.datepicker("setDate", value);
}
}
};
我的猜测是,您在html中提供了一个字符串作为绑定的值访问器,因此如下所示:
<input data-bind="datepicker: '2015-05-10'" />
在抛出错误的地方,将值访问器分配给observable
变量,然后尝试将其作为函数调用。我相信您想对视图模型做的是提供一个可观察的作为绑定的值访问器,如下所示:
<input data-bind="datepicker: myObservableDate" />
我快速地拨弄了一下:http://jsfiddle.net/npbee/s4mmfada/
相关文章:
- 如何在JavaScript中将字符串转换为函数引用
- jQuery中是否内置了任何字符串格式化函数
- TypeError:无法读取属性'推'未定义的JavaScript
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- ng打开空字符串
- 正则表达式在字符串中找到base64
- 未捕获的TypeError无法读取未定义的属性socialsharing
- gulp Iconify任务抛出错误TypeError:Path必须是字符串.收到false
- 日期选择器更改事件抛出”;TypeError:字符串不是函数;
- 抛出消息;TypeError:第一个参数必须是字符串或Buffer
- Appcelerator Titanium - 子字符串 Javascript: Uncatch TypeError.
- gulp-usemin TypeError: Path 必须是字符串.已收到未定义
- Grunt:抛出新的TypeError(路径.resolve的参数必须是字符串');
- TypeError:无法设置属性"字符串”;的字符串(Javascript)中未定义
- 尝试使用字符串调用方法名称:Uncaught TypeError:Object[Object global]没有方法
- TypeError:无法创建属性'mapTypeId'在字符串'无法加载映射'流星错误
- 调用jQuery后.i18n库我得到未捕获的TypeError:字符串不是我的登录方法中的函数
- 访问JSON字符串时出现TypeError
- AngularJS-TypeError:字符串不是函数
- Javascript 函数 TypeError 但只在 substring() 字符串上