백본 모델을 만들고 변경 이벤트를 첨부하면 해당 이벤트가 수신 대기합니다. 그리고 이벤트를 동시에 변경하면 (동일한 호출에서) 변경 이벤트가 모델의 변경 횟수만큼 발생합니다.백본 모델은 한 번만 변경합니다.
그래서 필터가있는 격자 모양의보기가 있고 필터를 변경할 때마다 새로 고침해야한다고 상상해보십시오.
내 기본 모델은 다음과 같습니다
defaults: {
filters: {
from: '2016-01-01',
to: today.format(format),
limit: 25,
page: 1,
cycle: 'all'
}
},
내가보기에서 모델의 청취자를 가지고 :
this.listenTo(this.model, 'change:filters', this.onShow);
그리고 필터를 변경할 때마다 내가 할 :
this.model.set('filters', {
from: '2016-07-01',
to: '2016-07-31',
limit: 25,
page: 1,
cycle: 'currentMonth'
});
본인은이 모델의 3 가지 속성을 변경했습니다. 변경 이벤트가 3 번 발생합니다. 내가 원했던 것은 모델에 3 가지 변경 사항이 있더라도 한 번만 변경된다는 것입니다.
그게 가능합니까? 백본 문서에서 사전
변경 이벤트는 한 번만 발생합니다. http://jsfiddle.net/nikoshr/u254vzmb/'filters' 객체를 공유하지 않으려면 함수에'defaults'를 래핑해야합니다. http : // backbonejs.org/#Model-defaults (작은 줄) – nikoshr
nikoshr이 모든 수에 적합합니다. 문제가 무엇이든, 당신의 질문에 당신이 묘사 한 것이 아닙니다. 그 중 하나, 또는 당신이 보여주는 다른 일이 있습니다. – Louis