我有一个淘汰赛 foreach 循环,在 Chrome 中运行良好,但在 IE8 中出错。
以下是绑定:
<ul>
<!-- ko foreach: { data: tasks, as: 'task' } -->
<!-- ko if: somecondition -->
<li data-bind="css: { active: somthing }">
<a data-toggle="tab" data-target="#someID">Text <span data-bind="text: task.tasks().length - 1" class="someclass"></span></a>
</li>
<!-- /ko -->
<!-- ko if: someOtherCondition -->
<li data-bind="css: { active: somthing }">
<a data-toggle="tab" data-target="#someOtherID">Text <span data-bind="text: task.tasks().length - 1" class="someclass"></span></a>
</li>
<!-- /ko -->
<!-- /ko -->
</ul>
IE8 说如下:
Unable to parse bindings.
Message: TypeError: 'task' is undefined;
Bindings value: test: task.tasks().length - 1
编辑:刚刚有了新的发展。似乎当我执行 foreach 循环而不是无容器时它可以工作。换句话说,如果我执行以下操作,它会起作用:
<ul>
<div data-bind="foreach: { data: tasks, as: 'task' }">
<!-- ko if: somecondition -->
<li data-bind="css: { active: somthing }">
<a data-toggle="tab" data-target="#someID">Text <span data-bind="text: task.tasks().length - 1" class="someclass"></span></a>
</li>
<!-- /ko -->
<!-- ko if: someOtherCondition -->
<li data-bind="css: { active: somthing }">
<a data-toggle="tab" data-target="#someOtherID">Text <span data-bind="text: task.tasks().length - 1" class="someclass"></span></a>
</li>
<!-- /ko -->
</div>
</ul>
也许这可以提供更多信息来了解出了什么问题?
有任何想法吗?