내 뷰 모델에 개체 컬렉션이 있습니다. select
컨트롤에 값을 바인딩 할 때 문제가 발생합니다. 값은 JS 객체이며 기본 유형이 아닙니다. 바운드 컬렉션에 둘 이상의 개체가 있고 select
컨트롤을 변경하면 다른 모든 개체의 값이 새로 선택된 개체로 업데이트됩니다. 모든 값이 foreach
바인딩 내부의 동일한 인스턴스에 바인딩되어있는 것과 같습니다. 오류는 새 행을 삽입 할 때 발생하며 기존 행을 편집 할 때만 발생하는 것 같습니다.한 개체의 관찰 가능한 속성 변경 컬렉션의 모든 개체의 변경 속성
나는 많은 복잡한 것들을 제거하고 JSFiddle에서 문제를 보여주는 예제를 가지고있다.
http://jsfiddle.net/zero21xxx/5vgDy/
단계 오른쪽 아래 새로운 드롭에서 "2"를 선택
- 선택 정착 유형을 볼 수 있습니다.
- 행 2의 드롭 다운에서 Settle Type을 선택하십시오.
- 선택 상자에서 행 1과 행 2가 둘 다 "One"로 설정됩니다.
한 행의 변경이 다른 행에 영향을주지 않을 것으로 예상됩니다. 내가 코드에, 그것을 보여줄 것을 추가하는 경우
그것은 모든 조금 복잡한 그것을 설정, 문제가 있지만, 내 생각, 당신의 ID를 예상하지 않는 어떤 것을,function getValues(tabId) {
console.log("tabId " + tabId);
if (lookUp[tabId]) {
는
이 문제를 해결하기 위해 코드 변경의 관점에서 무엇을 제안 하시겠습니까? 나는 결국'DatabaseField' 정보를 캐시하고 싶습니다. 왜냐하면 결국 서버를 때리기 때문입니다. 또한 왜이 같은 효과가'availableTabs'와 관련하여 발생하지 않습니까? 'foreach'에있는 모든 항목은 부모의 탭 목록에 바인딩되지만 테이블의 다른 행에 영향을주지 않고 변경할 수 있습니다. – arb
아마도 다음과 같이 될 수 있습니다. http://jsfiddle.net/rniemeyer/5vgDy/54/. 옵션이 매번 필드에 채워지기보다는 필드에 이미 채워 졌는지 확인하십시오. –