【发布时间】:2014-09-26 05:07:53
【问题描述】:
var ready;
ready = function() {
var imageChooser, productChooser;
productChooser = function() {
var self;
self = this;
self.quantityId = ko.observable(1);
self.quantityText = ko.observable('QTY');
self.genderId = ko.observable(1);
self.sizeId = ko.observable(1);
self.colorId = ko.observable(1);
self.fullSize = ko.observable('SIZE');
this.setGenderAndSize = function(stringtoparse, thestring) {
var values;
values = stringtoparse.split(":");
self.fullSize("SIZE: " + thestring);
self.genderId(values[0]);
self.sizeId(values[1]);
};
this.setQuantity = function(quantity) {
self.quantityId(quantity);
self.quantityText("QTY: " + quantity);
};
};
imageChooser = function() {
this.clicked = ko.observable();
this.setBigImage = (function(message) {
alert(message);
}).bind(this);
};
ko.applyBindings(new productChooser(), $("#genderAndSizeChooser")[0]);
ko.cleanNode($('#genderAndSizeChooser')[0]);
return ko.applyBindings(new imageChooser(), $('#imageChooser')[0]);
};
$(document).on('ready page:load', ready);
我目前有这个代码。不知何故,ko.cleanNode 代码:
ko.cleanNode($('#genderAndSizeChooser')[0]);
产生错误:
Uncaught TypeError: Cannot read property 'nodeType' of undefined
有人知道错误的原因吗?
【问题讨论】:
-
您确定确实存在
id的genderAndSizeChooser的元素吗?ko.applyBindings调用将接收 undefined 并像往常一样将绑定应用于主体,因此不会出错,但在 undefined 上调用ko.cleanNode会导致错误。 -
天啊。请把它作为一个答案。 applyBindings 的方式实际上并没有发送任何错误。我的 rails 应用覆盖了文档的
id
标签: knockout.js