웹 페이지가로드 될 때 녹아웃 관찰 가능 배열에 초기 값이 채워지고 사용자가 상호 작용할 때 splice 메서드를 통해 관찰 가능 배열에 추가하려고합니다. 페이지와. 배열에 추가하려고하는 새 항목은 배열의 원래 항목과 완전히 동일한 속성을 갖지만 새 항목을 기존 배열에 연결하려고하면 넉 아웃 바인딩 오류가 발생합니다 (예 : "오류 : 바인딩을 구문 분석 할 수 없습니다. 메시지 : ReferenceError : ContactName이 정의되지 않았습니다. 바인딩 값 : 텍스트 : ContactName ". 새 배열의 모든 항목에 해당 속성이 존재하더라도이 오류가 발생합니다. 바인딩을 자동으로 업데이트되기를 원하기 때문에 기본 배열 객체가 아니라 녹아웃 관측 가능 배열에서 스플 라이스를 수행하려고합니다. 스플 라이스 코드는 다음과 같습니다 : vmContacts.Contacts.splice(vmContacts.Contacts().length,0,contactData2);
.기존의 녹아웃 관측 가능 배열에 새로운 배열 배열을 연결하면 바인딩 오류가 발생합니다.
실제 피싱 예제를 만들었습니다. 즉, http://jsfiddle.net/ak47/pMFwe/입니다. 연락처 추가 버튼을 클릭하면 브라우저 콘솔에 오류가 표시됩니다.
필자는 추가해야 할 각 항목에 대해 push()를 수행하는 새로운 객체 배열을 반복하지 말고 splice가 작동해야하는 곳을 피하고 싶습니다. Knockout에서 알려진 이슈입니까? 아니면 잘못된 것입니까? 도와 주셔서 감사합니다!
지구촌 어디에서 신청 했습니까?!? :) –
푸시의 Systax는'array.push (element1, ..., elementN)'이고'apply'는 다음과 같은 함수를 호출 할 수 있습니다 :'theFunction.apply (valueForThis, arrayOfArgs)'http : // stackoverflow 참고. .com/questions/1986896/what-is-the-the-difference-between-call-and-apply – nemesv
나는 그것을 몰랐다, 고마워! :) –