Javascript 敲除-自定义绑定-将变量从init传递到update
我第一次使用knockout.js 本人有以下约束力:Javascript 敲除-自定义绑定-将变量从init传递到update,javascript,knockout.js,Javascript,Knockout.js,我第一次使用knockout.js 本人有以下约束力: ko.bindingHandlers.dateselect = { init: function (element) { var picker = new Pikaday({ field: element, }); }, update: function (element) { var current = picker.getDate();
ko.bindingHandlers.dateselect = {
init: function (element) {
var picker = new Pikaday({
field: element,
});
},
update: function (element) {
var current = picker.getDate();
}
};
在init
方法中,我初始化日期选择器,并尝试在update
方法中获取日期,如上所示
问题是我遇到以下错误:
未定义选择器
是否有任何方法可以访问
update
方法中的picker
实例?您可以通过设置helpers来实现这一点,helpers存储到元素中
例如
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();
}
}