第一次使用knockout.js。
我有以下绑定:
ko.bindingHandlers.dateselect = {
init: function (element) {
var picker = new Pikaday({
field: element,
});
},
update: function (element) {
var current = picker.getDate();
}
};
在init
方法中,我初始化了日期选择器,并且我试图在update
方法中获取日期,如上所示。
问题在于我收到以下错误:
选择器未定义
有没有办法访问picker
方法中的update
实例?
答案 0 :(得分:1)
您可以通过设置存储在元素中的帮助程序来完成此操作。
E.g。
function SomeBindingHelper(element, valueAccessor, allBindings, viewModel, bindingContext) {
var sharedVariable = "Banana";
// Call on init.
this.init = function () {
console.log("init", sharedVariable);
}
// Call on update.
this.update = function () {
console.log("update", sharedVariable);
}
}
ko.bindingHandlers.someBinding = {
init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {
var bindingHelper = new SomeBindingHelper(element, valueAccessor, allBindings, viewModel, bindingContext);
bindingHelper.init();
ko.utils.domData.set(element, "someBindingHelper", bindingHelper);
},
update: function (element, valueAccessor, allBindings, viewModel, bindingContext) {
var bindingHelper = ko.utils.domData.get(element, "someBindingHelper");
bindingHelper.update();
}
}