1.3.2์ ์ถ์ ๋ ๋ฒ์ ์ ๋ค์์ ํฌํจํ์ง ์๋ ๊ฒ์ผ๋ก ๋ณด์
๋๋ค.
https://github.com/jashkenas/backbone/commit/1db79ddd33f65e4ca93beb3174496cf148baebe5
์์ถ๋์ง ์์ ๋ฒ์ ์ ๊ทธ๋ ์ต๋๋ค.
์ถ์๋์ง ์์
Events.once = function(name, callback, context) {
// Map the event into a `{event: once}` object.
โโโโvar events = eventsApi(onceMap, {}, name, callback, _.bind(this.off, this));
โโโโif (typeof name === 'string' && context == null) callback = void 0;
โโโโreturn this.on(events, callback, context);
โโ};
์ถ์๋จ
l.once=function(t,e,r){
โโvar n=f(p,{},t,e,i.bind(this.off,this));
โโreturn this.on(n,e,r)
}
ํธ์ ๋ด์ ๊ฐ๊ธฐ
test / index.html์์ backbone.js๋ฅผ backbone-min.js๋ก ๋ฐ๊ฟ ๋์ด ๋ฌธ์ ์ ๋ํ ํ ์คํธ๊ฐ ์คํจ ํจ์ ํ์ธํ์ต๋๋ค.
ํ์จ. @megawac , ๋ด๊ฐ ์ ๋๋ก ํ ์์๋ ๊ฒ ๊ฐ์์ v1.3.3 PR์ ๋ง๋ค ์ ์์ต๋๊น?
๋ฐฉ๊ธ https://github.com/jashkenas/backbone/pull/3994๋ฅผ ์ ์ํ์ต๋๋ค.
์ถ์ ๋ ๋ฒ์ ์ ์ฌ์ฉํ๊ธฐ ์ํด index.html ํ์ผ์ ๋ณ๊ฒฝํ๋ ๊ฒ์ ๊ณ ๋ คํ์ง๋ง ๋ชจ๋ ์ฌ๋์ด ํ
์คํธ ์ ์ ๋น๋ํ ์ง ํ์ ํ ์ ์์์ต๋๋ค.
๊ผญ๋๊ฐ์ ํธํ ๊ฐ๋ฅํ ์ถ์ ๋ ๋ฐฑ๋ณธ v1.3.x๊ฐ ๊ณง ๋์ฌ ์์ ์ ๋๊น? ์์ง ์กด์ฌํ์ง ์๋ afaik
1.3.2๋ Marionette 2.4.5 @elgubenis์์ ์๋ํฉ๋๋ค.
์ค์ ๋ก Mn 2.4.5 ์ปดํฌ์งํธ ๋ทฐ์๋ ์ถ์ ๋ ๋ฐฑ๋ณธ 1.3.2์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ด๊ฒ์ด ์ ๊ฐ์ด ๋ฌธ์ ๋ฅผ ์ฒ์ ๋ฐ๊ฒฌ ํ ๋ฐฉ๋ฒ์ ๋๋ค.
CollectionView๋ ํ ๋ฒ์ ํตํด ๋ฐ์ธ๋ฉ๋ฉ๋๋ค.
this.once('render', this._initialEvents);
https://github.com/marionettejs/backbone.marionette/blob/master/src/collection-view.js#L25
CollectionView๋ฅผ ํ์ฅํ๋ ๋ณตํฉ๋ณด๊ธฐ
if (this.collection) {
์์ํ๋ _initialEvents
https://github.com/marionettejs/backbone.marionette/blob/master/src/composite-view.js#L23
์ด ์์ ์์ this
์ปจํ
์คํธ๊ฐ ์์ค๋ฉ๋๋ค (์์ https://github.com/jashkenas/backbone/commit/1db79ddd33f65e4ca93beb3174496cf148baebe5), ๋ฐ๋ผ์ this.collection์ ๊ฑฐ์ง์ด๋ฏ๋ก ์์๋์ง ์์ต๋๋ค. ์ปฌ๋ ์
์ด๋ฒคํธ๋ฅผ ์ ์ ํ๊ฒ ์์
๋ฐ๋ผ์ ๋ ๋๋ง ์ ์ ์ปฌ๋ ์ ์ด ์ค์ ๋ CompositeView์ CollectionView๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์ฃผ์ํ์ญ์์ค.
์, ์
๋ฐ์ดํธ ๋ ์ถ์ ํ์ผ๋ก ๋ฒ์ ์ ๋ค์ ๊ฒ์ํด์ผํ์ง๋ง ๋ง์คํฐ์ backbone.js
ํ์ผ์ 2.4.5์์ ์๋ํฉ๋๋ค. (๊ณง ๊ฒ์ ํ ์์ ์
๋๋ค)