컬렉션이있는 모델이 있습니다. 내 웹 응용 프로그램 내에서 프로젝트 모델을 가지고 있으며 "공동 작업자"라는 특성이 있는데이 특성은 실제로 사용자 모음입니다. 나는 다음을 내보기의 초기화에서 모델에서 백본 중첩 컬렉션 추가 수신 대기
,this.model.get('collaborators').on('change', alert("!!"), this);
보기 최초로드 내가 firther 다음를 발생 내가 이벤트를보기로, 경고를 얻을
,var newModel = new app.User({ id: this.clickedElement.data('userId') });
console.log(this.model.get(this.formSection)); // shows that the collection has 4 models
newModel.fetch({
success: function() {
that.model.get(that.formSection).add(newModel);
console.log(that.model.get(that.formSection)); //shows that the collection has 5 models
}
});
위의 코드에서 볼 수 있듯이 공동 작업자 컬렉션을 로깅하고 있으며 성공 메서드에서 가져온 후에 길이가 4 인 것을 보여줍니다. 그 컬렉션에 방금 가져온 모델을 추가 한 다음 수집 기록하기 다시 한 번 이번에는 길이가 5를 반환합니다.
이것은 내게 성공적이라는 것을 의미하므로 초기 페이지보기 후에 "add"이벤트 리스너가 실행되지 않습니까?
난 .. 단지'change'을'add' 청취자가 표시되지 않습니다 -하지만 공동 작업자 컬렉션입니다. 컬렉션은'change' 이벤트를 발생시키지 않습니다. 부모 모델까지 버블 링 될지 확실하지 않습니다. – Lix
'this.model.get ('collaborators '). on ('add ', alert ("!!"), this);' 뷰의 초기로드에서만 계속 발생하며 컬렉션에 데이터를 추가 할 때가 아닙니다. – Udders
상위 모델에서'change' 이벤트 만 사용해 보았습니까? – Lix