我有一个自定义绑定,用于集成jQuery UI Dialog小部件,基于Ryan Niemeyer对此的回答: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的关键字这一事实有关。
如果这是一个已知问题,有人可以建议吗?
谢谢
答案 0 :(得分:1)
正如瑞安所说,
如果您需要IE兼容性,请不要使用保留字作为属性名称。解决方法是使用以下语法:
ko.bindingHandlers['<bindingName>'].init....