【发布时间】:2014-04-19 02:00:15
【问题描述】:
我有这个微调器。
设置后没问题,控件显示正确的值,没有错误信息,但是如果我改变它,每次我都会收到这个错误信息:
"TypeError: observable 不是函数"
在这一行:
observable($(element).spinner("value"));
这是我的自定义绑定中的一行,如下所示:
ko.bindingHandlers.spinner = {
init: function (element, valueAccessor, allBindingsAccessor) {
//initialize datepicker with some optional options
var options = allBindingsAccessor().spinnerOptions || {};
$(element).spinner(options);
//handle the field changing
ko.utils.registerEventHandler(element, "spinchange", function () {
//var observable = valueAccessor();
var observable = ko.utils.unwrapObservable(valueAccessor());
observable($(element).spinner("value"));
});
//handle disposal (if KO removes by the template binding)
ko.utils.domNodeDisposal.addDisposeCallback(element, function () {
$(element).spinner("destroy");
});
},
update: function (element, valueAccessor) {
var value = ko.utils.unwrapObservable(valueAccessor()),
current = $(element).spinner("value");
if (value !== current) {
$(element).spinner("value", value);
}
}
};
如果我将失败的行与被注释掉的行交换:
var observable = valueAccessor();
它工作正常。 为什么第一个失败了?
【问题讨论】:
标签: javascript jquery knockout.js spinner