2012-10-19 5 views
1

내 응용 프로그램에 knockout.js 플러그인을 사용하고 있습니다. 나는 관찰 할 수있는 문제가있다. 나는 Example Fiddle을 만들었습니다. 이 피들에서는 새 메뉴가 추가 될 때마다 Menus을 동적으로 생성하고 Menu sequence을 생성합니다. 사용자는 첫 번째 메뉴를 제외하고 기존 메뉴를 삭제할 수 있습니다.녹아웃 관측 가능 속성이 업데이트되지 않습니다.

기존 메뉴를 삭제할 때 문제가 발생합니다. 왜냐하면 삭제시에 나는 remove 함수에서 시퀀스 번호를 업데이트하지만 시퀀스 번호는 업데이트되지 않기 때문입니다. 아무도 문제를 말해 줄 수 있습니까?

답변

1

시퀀스 변수를 다시 정의합니다. 원래 그것은 ko.observable입니다. 이 값을 정수 값으로 설정합니다. 값을 다음과 같이 설정해야합니다.

newMenuVM.Sequence(self.menus().length+1); 

이렇게하면 관찰자가 화면에서 값을 통지하고 업데이트 할 수 있습니다.

1

해결책 : Fiddle

수정 :

newMenuVM.Sequence = ko.observable(self.menus().length+1); 

self.menus()[i].Sequence(i+1); 

지운 :

self.courseOptions.push(newMenuVM); 

이유 :

,

당신의 바이올린을 실행할 때 "객체의 속성 '시퀀스가'함수가 아닙니다. '라는 오류가 나타납니다.

나는이 속성을 검색 참조 :

newMenuVM.Sequence = self.menus().length+1; 

그래서, 나는 ko.observable 기능을 추가 할 수 있습니다.

+0

도움을 주셔서 감사합니다. 그 원인을 설명 할 수 있다면 나중에 정말 많이 도움이 될 것입니다. –

+0

MenuViewModel에서 Sequence 속성을 관찰 할 수있게 만들었 기 때문에 여기에서 혼란 스럽습니다. 다시 관찰 할 필요가있는 이유는 무엇입니까? –

+0

나는 그 이유를 추가하여 대답을 편집했습니다. : D – JNo

관련 문제