0
データバインド<input>
タグにしようとしたとき、私はIE8で、次のエラーが表示されます。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でエラーをスローしますか?
あなたが正しいかもしれませんが、私はそれを試してみましょう。私はおそらくknockoutjs [observableArray.indexOf](http://knockoutjs.com/documentation/observableArrays.html#indexof)を使用する必要があります –
これはオプションです。観測不可能な配列に対してもko.utils.arrayIndexOfを使用できます。 – madcapnmckay