Collection
collection์ model๋ค์ ๋ชจ์ ๋์ ๊ฒ์ด๋ค. Backbone Model์ DB์์ ๋ ์ฝ๋ ํ๋์ ๋น๊ตํ ์ ์๊ณ , Collection์ DB ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๋ก ๋ฐ์ ๋ ์ฝ๋๋ค ์ด๋ผ ์๊ฐํ ์ ์๋ค.
๊ฐ๋จํ ์์ ๋ฅผ ํตํด์ Collection์ ์์ฑํ๊ณ model๋ค์ ๋ฃ๋ ๊ฒ์ ๋ณผ ๊ฒ์ด๋ค.
Model ์ฐธ์กฐ
Collection์ ๋ค์ด์๋ ๋ชจ๋ธ๋ค์ ์ ๊ทผํ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
collection.models
property์ ๋ฐฐ์ด ํํ๋ก ์๋ค.
.at()
๋ฉ์๋๋ฅผ ์ด์ฉํด ์ ๊ทผํ ์๋ ์๋ค.
.get(id)
: id attribute๋ฅผ ํตํด ์ ๊ทผํ๊ธฐ
getByCid()
: cid๋ก ์ ๊ทผํ๊ธฐ
Collection Events
add
: ๋ชจ๋ธ์ด ์ฝ๋ ์ ์ ์ถ๊ฐ๋์์ ๋(collection.add(model)์ ์คํํ์ ๋)remove
: ๋ชจ๋ธ์ด ์ฝ๋ ์ ์์ ์ ๊ฑฐ๋์์ ๋ (collection.remove(model)์ ์คํํ์ ๋)reset
: ์ฝ๋ ์ ์ด ์ด๊ธฐํ๋์์ ๋ (collection.reset()์ ์คํํ์ ๋)sort
: ์ฝ๋ ์ ์ด ์ด๋ ํ comparator์ ์ํด ์ ๋ ฌ๋์์ ๋ (collection.sort()๋ฅผ ์คํํ์ ๋)change
: ๋ชจ๋ธ์ ์ด๋ ํ ๊ฐ์ด ๋ณํ๋์์ ๋ (model.set(attr: value)๋ฅผ ์คํํ์ ๋)change:[attr]
: ๋ชจ๋ธ์ ํน์ ํ ๊ฐ์ด ๋ณํ๋์์ ๋destroy
: ๋ชจ๋ธ์ด ์ญ์ ๋์์๋ (model.destroy()๋ฅผ ์คํํ์ ๋)
fetch
์ด ๋ฉ์๋๋ ์๋ฒ์ DB๋ ๋ธ๋ผ์ฐ์ ์ localStorage์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์์ ๋ฐ๋ก collection์ ์ถ๊ฐํ ์ ์๋ค. ์ด๋๋ collection์ ๋ง๋ค๋ model property๊ฐ ์์ด๋, ์์ด๋ ๋๋ค. url property๋ ๋ฐ๋์ ์์ด์ผํ๋ค.
model, collection์ ์ง์ ๋ url์ http ํธ์ถ์ ํตํด์ JSONํ์ ์ ๋ฐ์ดํฐ๋ฅผ ์๋ฒ์์ ๊ฐ์ ธ์จ๋ค.
fetch()
๋ ์๋ฒ์์ ์ฃผ๋ ๋ฐ์ดํฐ ๋ค๋ก ๊ฐ๋จํ๊ฒ collection์ ๋ง๋ค ์ ์๋ค.
fetch()
๋ฉ์๋๊ฐ ์คํ๋๋ฉด url property์ ์๋ url๋ก ajax request๋ฅผ ํ๋ค. ๊ทธ ๊ฒฐ๊ณผ ๋ฐ์์จ ๋ฐ์ดํฐ๋ค์ด collection์ ๋ค์ด๊ฐ๋ค.
fetchํธ์ถ์ $.Deffered (Promise) ๊ฐ์ฒด๋ฅผ ๋ฆฌํด
fetchํธ์ถ์ ๊ธฐ๋ณธ์ ์ธ response์ ์ ํจ์ฑ๊ฒ์ฆ (isValidateResponse ํจ์) - ์คํจ์ error์ด๋ฒคํธ๋ฐ์
Event Bind / Unbind
On
์๋ฅผ ๋ค์ด movie๋ผ๋ ๋ชจ๋ธ ์ธ์คํด์ค์ change ์ด๋ฒคํธ์ handler๋ฅผ ๋ฐ์ธ๋ํ๋ค๋ฉด
๊ฐ๋จํ๊ฒ ์ด๋ฒคํธ ๋งตํ์ ์ ์ฉํ ์๋ ์๋ค.
๋ํ Custom ์ด๋ฒคํธ๋ ๋ง๋ค ์ ์๋ค.
์ปค์คํ
์ด๋ฒคํธ๋ค์ ์ฌ์ฉ์๊ฐ ์ง์ ์ด๋ฒคํธ๋ฅผ ํธ์ถํ์ฌ ์ฌ์ฉํด์ผํ๋ฉฐ, trigger(event)
ใ
ใ
์๋๋ฅผ ์ด์ฉํ๋ฉด๋๋ค.
์ฆ, trigger ๋ฉ์๋๋ built-in ์ด๋ฒคํธ๋ ์ง์ ๋ง๋ ์ด๋ฒคํธ๋ฑ์ ์ง์ ํธ์ถํ๊ณ ์ถ์ ๋ ์ฌ์ฉํฉ๋๋ค.
off
์ด๋ฒคํธ unbinding์ off()
๋ฉ์๋๋ฅผ ์ด์ฉํ๋ฉด๋๋ค.
once
ํด๋น ์ด๋ฒคํธ์ ๋ํด ํ๋ฒ๋ง ์ฌ์ฉ๋๊ณ ๋ฐ๋ก ์ ๊ฑฐ๋๋ ์ญํ
(jQuery์ one() ๋ฉ์๋์ ์ ์ฌํ๋ค.)
listenTo
์์ ๋ฉ์๋๋ค์ ๋ชจ๋ model, collection์ ์ง์ ์ฌ์ฉ๋๋ค. Model, Collectiondl ์๋ Backbone.View ์ธ์คํด์ค์ ๊ธฐ๋ฐํ event binding์ด ํ์ํ ๊ฒฝ์ฐ์ ์ฌ์ฉํ๋ค.
์ฐธ์กฐ๋งํฌ
http://webframeworks.kr/tutorials/backbonejs/backbone_events/
http://codefactory.kr/2011/12/25/getting-started-with-backbonejs-3-collection/
Last updated