我在knockout.js中使用“with”绑定,并且在Chrome和IE9中它可以正常工作,但是当我移动到IE8时,表单不再提交。我删除了“with”它确实很好。在Visual Studio中,“with”关键字为蓝色,告诉我这是一个保留字。 IE8还有这个吗?
<form class="box clearfix" action="@Request.RawUrl" data-bind="with: members.events, form: { id: @Model.Event.Id }">
ko.bindingHandlers.form = {
init: function (element, valueAccessor) {
var value = ko.utils.unwrapObservable(valueAccessor());
$(element).find('button[type=submit]:last').click(function () {
if (typeof (value.submit) == 'function') {
value.submit();
} else {
app.call({
type: 'POST',
data: $(element).serializeObject(),
url: $(element).attr('action'),
success: function (result) {
if (value.replace) {
app.updateContainerWithHtml(result);
} else {
if (value && value.id == 0 && typeof(result) == 'string') {
window.location.hash = result;
} else {
if (typeof (value.callback) == 'function') {
value.callback(result);
}
}
if (value.hideSuccess == undefined && !value.hideSuccess) {
if (result.Url) {
app.showSuccess(result.Message, function() {
window.location.hash = result.Url;
});
} else {
app.showSuccess();
}
}
}
}
});
}
return false;
});
}
};
答案 0 :(得分:2)
我遇到了同样的问题found here
我只需要使用members.events.title
而不是title
等长数据绑定来引用我的对象。
我的代码部分很小,因为它只是一个附件部分所以它并不太烦人。您可以像data-bind="'with':
一样尝试转义with,就像使用ko评论一样,以便让它们与IE一起使用但是我怀疑它是否有效。