我有以下KnockoutJS 2.0代碼,在所有現代瀏覽器中都能正常工作,但在IE8上失敗。KnockoutJS模板在IE8中不起作用,給出綁定錯誤
這裏的簡化代碼:
<table>
<tr>
<td data-bind="template: { foreach: fooItems, name: 'foo-template' }></td>
<td data-bind="template: { foreach: barItems, name: 'foo-template' }></td>
</tr>
</table>
<script id="foo-template" type="text/html">
<div data-bind="click: SomeMethod">
foobar
</div>
</script>
<script type="text/javascript">
var viewModel = {
fooItems: ko.observableArray(),
barItems: ko.observableArray(),
}
ko.applyBindings(viewModel);
</script>
這工作得很好的IE9,Chrome瀏覽器,Firefox瀏覽器。
但是,IE8,我得到以下錯誤:
"Unable to parse bindings. SomeMethod is undefined."
在IE8調試這一點,我看到以下信息:
這是關於拋出異常,和它在foo-template的渲染過程中即將到來。
注意$ data是未定義的。這就是爲什麼SomeMethod不能解決問題;它應該存在於$ data.SomeMethod上,但是$ data沒有定義。
爲什麼在IE8上失敗?
在下面的jsfiddle工作對我來說也是如此。也許簡化版本缺少一些東西? – 2012-04-19 13:38:02