IE8绑定错误

时间:2012-03-29 21:45:01

标签: internet-explorer knockout.js

在尝试数据绑定<input>标记时,我在IE8中收到以下错误:

  

无法解析绑定。

     

消息:[对象错误];

     

绑定值:启用:$ root.hasTag('foo')

基本上,我在复选框上有一个启用数据绑定,如果没有具有特定标记的模型,则应禁用该复选框。

<input type="checkbox" data-bind="enable: $root.hasTag('foo')" value="foo" 
    class="filtercheck" />

viewmodel具有以下方法来遍历所有模型,并使用匹配标记对模型求和,如果值大于0,则返回true。

self.hasTag = function(tag) {
    var sum = 0;
    var item;
    for (var i=0; i<this.items().length; i++) {
        item = this.items()[i];
        if (item.tags().indexOf(tag) != -1) {
            sum++;
        } else {
            continue;
        }        
    }
    return (sum > 0) ? true : false;
};

为什么这个数据绑定只在IE8中引发错误?

1 个答案:

答案 0 :(得分:2)

我相信它是因为在IE8中没有定义indexOf。做了快速测试,它返回undefined。您必须supply your own version

希望这有帮助。