유사하지만 다른 데이터에 대해 두 번째 AJAX 요청을 발행 한 후 기존 observableArray
에 추가하는 방법을 알아내는 데 문제가 있습니다.다른 observableArray의 값을 KnockoutJS의 기존 observableArray에 병합
내 첫 번째 JSON 요청에 value
유형이 없으므로 추가해야합니다. 내 초기 JSON 구조 :
[{"statusmsg":"OK","data":{"status":"stopped"},"sender":"hostname","statuscode":0}]
:
[{"statusmsg":"OK","data":{"value":"","fact":"some_fact"},"sender":"hostname","statuscode":0}
내가 중첩 된 객체 data
에 추가 할 유형 value
이며 some_fact
을 포함합니다.
ko.utils.arrayForEach(self.rows(), function(row) {
ko.utils.arrayForEach(self.timeRows, function(time) {
if(row.sender() == time.sender()) {
self.rows()[0].data.push({value: time.data.value()});
}
});
});
참고 :
나는 다음과 같은 시도 나는 시험만을위한 자리 표시 자 인덱스 0을 사용하고 있습니다. 이상적으로는 호스트 이름을 기준으로 일치 항목을 찾고 observableArray
을 업데이트하고 싶습니다.
이 코드가 실행, 나는
TypeError: self.rows(...)[0].data.push is not a function
가 나는 또한 data().push
처럼 다음 data
에 괄호를 넣어 시도하는 오류가 발생하지만, 그 중 하나가 작동하지 않았다.
observableArray
rows
이라는 새로운 값을 추가하여 새 정보로 내보기를 업데이트 할 수 있습니다.
뷰 모델에서'rows'를 정의한 방법에 따라 다릅니다. ko.observableArray()에 래핑 된 JS 객체의 단순한 배열입니까? 서버에서받은 데이터에 ko.mapping.fromJSON() 또는 ko.mapping.fromJS()를 사용 했습니까? 모델 매핑을보기 위해 자신 만의 맞춤형 모델을 만들었습니까? – Sybeus
@ 시베스 : 나는 ko.mapping.fromJSON을 사용했습니다. 나는 커스텀 모델을 만들지 않았다.하나의 ViewModel – Brian