2011-12-21 2 views
2

에서 예외가 발생합니다. 내 응용 프로그램은 Firefox 3.6 및 Chrome에서 잘 작동합니다. 나는 IE8에서 예외를 얻는다. 2.0 버전 1.3 베타 KnockoutJS를 사용하고 있습니다.아이 뷰 모델은 내가 다음과 같은 뭔가를 인터넷 익스플로러 8

내가 뭘 잘못하고 있니?

+0

축소 된 버전의 녹아웃을 사용하고 있습니까? 그렇다면 압축되지 않은 버전에 샷을 제공하고 녹아웃에서 어떤 라인이 오류인지 확인하십시오. 가능한 원인에 대한 단서를 제공 할 수 있습니다. –

+0

@AlexKey - 질문을 업데이트하겠습니다. –

+0

@Daniel : 나의 실수 - Knockout이'indexOf()'를 구현 한 것을 깨닫지 못했습니다. –

답변

2

나는 두 가지 문제가있었습니다.

먼저, 배열의 값을 얻기 위해 메소드를 제거하고 대신 관찰 가능 어레이를 사용했습니다.

// Bad code for IE8 
this.viewModel.selections().indexOf(this); 

// this works 
this.viewModel.selections.indexOf(this); 

또한 for 속성을 설정했습니다. IE는 for에 대한 불평은 키워드입니다.

// Bad code for IE8 
data-bind="attr: { for : logicalOperatorAndFieldId }" 

// Good code for IE8 
data-bind="attr: { 'for' : logicalOperatorAndFieldId }" 
+0

+1, IE8에서 class가 키워드라고 주장하는 문제도있었습니다 :'data-bind = "attr : {class : InitialClass}' 그것을 해결했다 :'data-bind = "attr : { 'class': InitialClass}' – danludwig

+0

방금 ​​attr 바인딩에서'for'로 IE8 문제를 만났다. 나에게 1 톤의 시간을 절약 했으므로 감사합니다! – Ben

2

<span data-bind='text: Text' />과 같은 자동 마감 태그를 사용하지 마십시오. 그것은 또한 녹아웃을 사용할 때 IE8, IE7에 문제를 일으킬 수 있습니다.

+0

이 질문에 대한 답변을 제공하지 않습니다. –

관련 문제