我有一个用于集成jQuery UI对话框小部件的定制绑定,该绑定基于Ryan对此的回答:integrating jquery ui dialog with knockoutjs。
在调用Dialog小部件之后,我希望绑定"with“绑定,如下所示:
ko.bindingHandlers.annotatePanel = {
init: function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
setTimeout(function() {
$(element).dialog({
autoOpen: false,
modal: true,
width: 840,
resizable: false,
close: function() {
var data = valueAccessor();
if (ko.isWriteableObservable(data)) {
data(null);
}
}
});
},0);
//ko.applyBindingsToNode(element, { 'with': valueAccessor() }, bindingContext);
//ko.bindingHandlers["with"].init.apply(this, arguments);
ko.bindingHandlers.with.init.apply(element, valueAccessor(), allBindingsAccessor, viewModel, bindingContext);
},这在Chrome和FireFox中很好,但在IE8中,我得到了以下错误:
“预期标识符.”
如果我将代码更改为使用以下任何一种:
ko.applyBindingsToNode(element, {'with': valueAccessor()}, bindingContext);
or
ko.bindingHandlers["with"].init.apply(this, arguments);我不会犯任何错误。
我怀疑这与" with“是IE关键字的事实有关。
如果这是一个已知的问题,有人能提出建议吗?
谢谢
发布于 2013-11-27 07:32:47
正如莱恩所说,
如果您需要IE兼容性,不要使用保留字作为属性名。解决办法是使用以下语法:
ko.bindingHandlers['<bindingName>'].init....https://stackoverflow.com/questions/20229687
复制相似问题