์ธ์ (๊ทธ๋ฆฌ๊ณ ์ด๋ป๊ฒ?) ngRepeat๊ฐ ์ ์ ๋ชฉ๋ก์ ์ฒ๋ฆฌํ ์๊ฐ ํ๋ ์์ด ์์ต๋๊น?
๋ฌธ์ ์ ์ต์ํ์ง ์์ ๊ฒฝ์ฐ: ํ์ฌ ngRepeat๋ ๋จ์ผ ์์์ ํจ๊ป ์๋ํฉ๋๋ค. ๋๋ถ๋ถ์ HTML์์๋ ์ ์๋ํฉ๋๋ค. ๊ทธ๋ฌ๋ <dl>
์ ๊ฐ์ ์ ์ ๋ชฉ๋ก์์๋ ์๋ํ์ง ์์ต๋๋ค. ์์? ์ ์ ๋ชฉ๋ก์ ์ฌ๋ฌ ์์๋ฅผ ์ฌ์ฉํ์ฌ ๋จ์ผ ๋ชฉ๋ก ํญ๋ชฉ์ ์ ์ํ๊ธฐ ๋๋ฌธ์
๋๋ค.
์ด์ ์ด์ ๋ํ ์ฌ๋ฌ ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ง๋ง ์ฌ๊ธฐ๋ฅผ ์ฝ์ผ๋ฉด Angular๊ฐ ์ฃผ์์ ์ฌ์ฉํ์ฌ ๋ฐ๋ณต๋๋ ์์๋ฅผ ์ง์ํ๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
์ด ๊ธฐ๋ฅ์ด ์ธ์ ๊ตฌํ๋ ์ง์ ๋ํ ์์ด๋์ด๊ฐ ์์ต๋๊น? ๋๋ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ณํฉํ ์ ์๋ ๋ค์ ์์ ์ ์ธ ๋ถ๊ธฐ๊ฐ ์๋ค๋ฉด? ๊ธฐ์กด ์๋ฃจ์ ์ ํ์ฌ ํ์ค์ ๋ฐํ์ฌ _๋งค์ฐ_ ํดํคํ๊ณ IE/๋ฑ์์ ์ฝ๋๋ฅผ ๊นจ๋จ๋ฆฌ๋ ๊ฒฝํฅ์ด ์์ต๋๋ค.
์๊ฐ?
ํธ์ง : "๋ณํฉํ ์ ์๋ ์์ ์ ์ธ ๋ถ๊ธฐ"๋ ์ฝ๋๊ฐ ๊ณต์์ ์ผ๋ก ๋ณํฉ๋ ๋๊น์ง ๋ด ์ฌ์ดํธ์์ ๋ถ๊ธฐํ์ฌ ์คํํ๊ณ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ ๋ถ๊ธฐ๋ฅผ ์๋ฏธํฉ๋๋ค. ์๋ชป๋ ํํ์ ๋ํด ์ฌ๊ณผ๋๋ฆฝ๋๋ค. :)
๋ ๋ฒ์งธ ์ด๊ฒ. ๋๋ ์ ์ ๋์์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค.
@IgorMinar ๋ ์ฃผ์ ๊ธฐ๋ฐ ng-repeat(https://github.com/angular/angular.js/pull/1646)์ ๋ํด ์ผ๋ถ ์์ ์ ์ํํ์ง๋ง ์ฃผ์์ด ๋ชจ๋ ๋ธ๋ผ์ฐ์ ์์ ์ ์ฌ์๋์ง ์๊ธฐ ๋๋ฌธ์ ๊ทธ๋ด ๊ฐ๋ฅ์ฑ์ ์์ต๋๋ค. ๋ณํฉ. ๋์ ๊ทธ๋ค์ "์์ ๋ฐ ์ข ๋ฃ ๋ฐ๋ณต ํ๊ทธ" ๋๋ "์์-๋ฐ๋ณต ๋ฐ ๋ ์ด๋ธ์ ๋ฐ๋ณตํ ์์ ์"๊ฐ ์๋ ๋์ฒด ์๋ฃจ์ ์ ์ฐพ๊ณ ์์ต๋๋ค.
{{ }}์ ๊ฐ์ ์ ์์ ํ ํ๋ฆฟ์ ํ์ฉํ๋ ๊ฒ์ ์ด๋ป์ต๋๊น?
์๋ง๋:
{{! ng-repeat = "foo in l"
๊ด๋ จ ๋ฉ๋ชจ์์ ๋ ๋ฒ์งธ ๋ณด๊ฐ ํ์์ ํฐ ๊ธฐ์ ์ ๋ฌธ์ ๊ฐ ๊ฐ ์์ต๋๋ค.
html ๋ฌธ์๋ฅผ ์ด์ค์ผ์ดํํ์ง ์์์ง๋ง ์์ฑํ์ง๋ ์์ {{{ }}}์ ๊ฐ์ด
์๋ก์ด ์คํฌ?
2013๋
1์ 29์ผ ํ์์ผ ์คํ 12์ 38๋ถ, Pete Bacon Darwin <
[email protected]>์ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
@IgorMinar https://github.com/IgorMinar ๋ ์์ ์ ์ํํ์ต๋๋ค.
์ฃผ์ ๊ธฐ๋ฐ ng-repeat (#1646https://github.com/angular/angular.js/issues/1646)
๊ทธ๋ฌ๋ ์ฃผ์์ด ๋ชจ๋ ๋ธ๋ผ์ฐ์ ์์ ์ ์ฌ์๋์ง ์๊ธฐ ๋๋ฌธ์
๋ณํฉ๋ฉ๋๋ค. ๋์ ๊ทธ๋ค์ ๋์ฒด ์๋ฃจ์ ์ ์ฐพ๊ณ ์์ต๋๋ค. ์๋ง๋
"์์ ๋ฐ ์ข ๋ฃ ๋ฐ๋ณต ํ๊ทธ" ๋๋ "์์-๋ฐ๋ณต ๋ฐ ์
๋ ์ด๋ธ์ ๋ฐ๋ณตํ ์์"โ
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ Gi tHubhttps://github.com/angular/angular.js/issues/1891#issuecomment -12856484์์ ํ์ธํ์ธ์.
๋ฐฉ๊ธ ๋ฐฐ์ด์ ๊ฐ์ฒด๋น ๋ ๊ฐ์ 'td' ์์๋ฅผ ์์ฑํ๋ ค๋ ํ ์ด๋ธ์์ ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค.
์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ฉด +1์ ๋๋ค. ๋ฐฉ๊ธ์ด ๋์ผํ ์ ํ์ ๋ถ๋ช์ณค์ต๋๋ค.
:์์ง์๊ฐ๋ฝ:
๋์ผํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. "ng-repeat-children"์ด ํ์ฌ ์์๊ฐ ์๋ ์์๋ง ๋ฐ๋ณตํ๊ฑฐ๋ "ng-omit-tag"(ํ์ฌ ํ๊ทธ๋ฅผ ์ ๊ฑฐํ์ง๋ง ์์์ ์ ์๋ฆฌ์ ๋จ๊ฒจ๋ )์ ๊ฐ์ ๊ฒ์ ์ฌ์ฉํ๊ณ ์ถ์ต๋๋ค. ng-repeat์ ํจ๊ปํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์์ฑ๋ ์๋ง์ ์๋ชป๋ ๋งํฌ์ ์ ํผํ ์ ์์ต๋๋ค.
๋
ผ์ ์ค์ธ ์ ํ ์ฌํญ์ ์์ ํ ์ดํดํ์ง ๋ง์ญ์์ค. ๋ถ๋ชจ ์์์ ng-repeat๋ฅผ ๋๋ ๊ฒ์ด ์๋ํ๋ ์ด์ ๋ ๋ฌด์์
๋๊น? http://jsfiddle.net/JyWdT/13/
๋๊ตฐ๊ฐ๊ฐ ๋ฌธ์ ๋ฅผ ๋ ์์ธํ ์ค๋ช
ํ๋ ๋ฐ์ด์ฌ๋ฆฐ์ ๋ง๋ค ์ ์์ต๋๊น?
lgalfaso, ๊ทํ์ ๋ฐ์ด์ฌ๋ฆฐ์ ๊ฐ๊ฐ ํ๋์ ์ ์๋ก ์ฌ๋ฌ ์ ์ ๋ชฉ๋ก์ ๋ง๋ญ๋๋ค. ์ํ๋ ์ถ๋ ฅ์ ์ฌ๋ฌ ์ ์๊ฐ ์๋ ํ๋์ ์ ์ ๋ชฉ๋ก์ ๋๋ค.
๋๋ ์ ๊ฒฝ์ฐ์๋ ๋ฐฐ์ด์ ๋ชจ๋ ํญ๋ชฉ์ ๋ํด "td" ์์ ์์ ๋ง๋ค์ด์ผ ํฉ๋๋ค.
๋ฐฐ์ด์ด ์๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค.
[{name:dan, age:15}, {name:steve, age:21}]
์ถ๋ ฅํด์ผ ํฉ๋๋ค.
<tr><td>dan</td><td>15</td><td>steve</td><td>21</td></tr>
ํ์ฌ๋ก์๋ Angular๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฅผ ์ํํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
tr ์์์ ng-repeat๋ฅผ ๋ฃ์ด ๊ทธ๋ ๊ฒ ํ ์ ์์ต๋๊น?
http://plnkr.co/edit/lJvkOpz0NnKWcfEeM4lE?p=preview
2013๋ 4์ 21์ผ ์ผ์์ผ ์คํ 2์ 24๋ถ์ ziles [email protected]์์ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
lgalfaso, ๊ทํ์ ๋ฐ์ด์ฌ๋ฆฐ์ ๊ฐ๊ฐ ํ๋์ ์ ์ ๋ชฉ๋ก์ ์ฌ๋ฌ ๊ฐ ๋ง๋ญ๋๋ค.
์ ์. ์ํ๋ ์ถ๋ ฅ์ ์ฌ๋ฌ ๊ฐ์ ์ ์ ๋ชฉ๋ก์ด ์๋ ํ๋์ ์ ์ ๋ชฉ๋ก์ ๋๋ค.
์ ์.๋๋ ์ ๊ฒฝ์ฐ์๋ ๋ชจ๋ ํญ๋ชฉ์ ๋ํด ํ ์์ "td" ์์๋ฅผ ๋ง๋ค์ด์ผ ํฉ๋๋ค.
๋ฐฐ์ด.
๋ฐฐ์ด์ด ์๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค.[{ ์ด๋ฆ:๋จ , ๋์ด:15 }, { ์ด๋ฆ:์คํฐ๋ธ , ๋์ด:21 }]
์ถ๋ ฅํด์ผ ํฉ๋๋ค.
๋จ 15 ์คํฐ๋ธ 21 ํ์ฌ๋ก์๋ Angular๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฅผ ์ํํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
โ
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ Gi tHubhttps://github.com/angular/angular.js/issues/1891#issuecomment -16716788์์ ํ์ธํ์ธ์.
.
์, ์๊ฒ ์ต๋๋ค. ์ด์ ๋๊ธ์ ๋ฌด์ํ์ธ์.
2013๋
4์ 21์ผ ์ค์ 9:09 "jason turim" jason. [email protected] ์ ๋ค์
tr ์์์ ng-repeat๋ฅผ ๋ฃ์ด ๊ทธ๋ ๊ฒ ํ ์ ์์ต๋๊น?
http://plnkr.co/edit/lJvkOpz0NnKWcfEeM4lE?p=preview
2013๋ 4์ 21์ผ ์ผ์์ผ ์คํ 2์ 24๋ถ์ ziles [email protected]์์ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
lgalfaso, ๊ทํ์ ๋ฐ์ด์ฌ๋ฆฐ์ ๊ฐ๊ฐ ํ๋์ ์ ์ ๋ชฉ๋ก์ ์ฌ๋ฌ ๊ฐ ๋ง๋ญ๋๋ค.
์ ์. ์ํ๋ ์ถ๋ ฅ์ ์ฌ๋ฌ ๊ฐ์ ์ ์ ๋ชฉ๋ก์ด ์๋ ํ๋์ ์ ์ ๋ชฉ๋ก์ ๋๋ค.
์ ์.๋๋ ์ ๊ฒฝ์ฐ์๋ ๋ชจ๋ ํญ๋ชฉ์ ๋ํด ํ ์์ "td" ์์๋ฅผ ๋ง๋ค์ด์ผ ํฉ๋๋ค.
๋ฐฐ์ด.
๋ฐฐ์ด์ด ์๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค.[{ ์ด๋ฆ:๋จ , ๋์ด:15 }, { ์ด๋ฆ:์คํฐ๋ธ , ๋์ด:21 }]
์ถ๋ ฅํด์ผ ํฉ๋๋ค.
๋จ 15 ์คํฐ๋ธ 21 ํ์ฌ๋ก์๋ Angular๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฅผ ์ํํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
โ
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ Gi tHubhttps://github.com/angular/angular.js/issues/1891#issuecomment -16716788์์ ํ์ธํ์ธ์.
.
๋ฐฉ๊ธ dl / dt + dd ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ฌ ์๋ก์ด ng-repeat-children(๋๋ ng-repeat-inner)์ด ๋๋ฝ๋ ํ์ ์ง์์ด์์ ํ์ธํ์ต๋๋ค.
+1
์๋ก์ด ์ง์๋ฌธ ng-repeat-inner์ ๋ํ ์ ์. ์ด ์ ์์ด ๊ด์ฐฎ๋ค๋ฉด ๋ชจ๋ ๊ฐ์ด๋๋ฅผ ์์ ํฉ๋๋ค.
๋์ผํ ng-repeat
์ง์๋ฌธ์ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ ๋์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง๋ง ์๋ ๊ฒ์๋ฌผ์์ ์ ์ํ๋ ๊ฒ์ฒ๋ผ HTML ์ฃผ์์ ํด๋น ์ง์๋ฌธ์ ์ฌ์ฉํ ์ ์๋๋ก ํ์ฉํฉ๋๋ค.
๋ค์๊ณผ ๊ฐ์ ๊ฒ์ด ์๋ํด์ผ ํฉ๋๋ค.
<dl>
<!-- ng-repeat="(name, definition) in myList" -->
<dt>{{name}}</dt>
<dd>{{definition}}</dd>
<!-- /ng-repeat -->
</dl>
๋ฐ๋ณต๋๋ ๋ธ๋ก์ ์์๊ณผ ๋์ด ์ ํํ ์ด๋ป๊ฒ ๋ฌ์ฑ๋๋์ง๋ ํ์คํ์ง ์์ง๋ง( @ProLoser์์ <!-- /ng-repeat -->
์ ์), HTML ์ฃผ์์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ฐ์ํ ์๋ฃจ์
์ด ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์ถ์์๊ฐ ์ฃผ์ ๋ฐ ์ฃผ์๊ณผ ๊ด๋ จ๋ ๊ธฐํ ๋ฌธ์ ๋ฅผ ์ ๊ฑฐํ ์ ์๋ค๋ ์ ์ ๊ฐ์ํ ๋ ์ ๋
์ด๊ฒ์ด ํ๋ฅญํ๋ค๊ณ ์๊ฐํ์ง ๋ง์ญ์์ค. ๊ทธ๋ฌ๋ ๋๋ ng-repeat๋ฅผ ์ฌ์ฉํ๋ ์์ด๋์ด๋ฅผ ์ข์ํฉ๋๋ค.
ng-repeat-single-root ์์ฑ์ ํฌํจํ๋ ๊ฒ์ด ๊ฐ๋ฅํฉ๋๊น?
true๋ก ์ค์ ํ๋ฉด ๋ฃจํธ ์์ด ng-repeat๊ฐ ์คํ๋ฉ๋๋ค.
์์? ์๋ฅผ ๋ค์ด:
๋ ๊ฒ์ ๋๋ค:
2013๋ 4์ 23์ผ ํ์์ผ ์คํ 3์ 54๋ถ, Mani Tadayon [email protected]์์ฑ :
๋์ผํ ng-repeat ์ง์๋ฌธ์ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ ์ข์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง๋ง ํ์ฉ
ํด๋น ์ง์๋ฌธ์ด ์๋ณธ ๊ฒ์๋ฌผ๋ก HTML ์ฃผ์์ ์ฌ์ฉ๋๋๋ก
์ ์.๋ค์๊ณผ ๊ฐ์ ๊ฒ์ด ์๋ํด์ผ ํฉ๋๋ค.
- {{์ด๋ฆ}}
- {{์ ์}}
๋ธ๋ก์ ์์๊ณผ ๋์ด ์ ํํ ์ด๋ป๊ฒ ๋ฐ๋ณต๋๋์ง ํ์คํ์ง ์์
๋ฌ์ฑ ๋ ๊ฒ์ ๋๋ค (๋๋๋ด ์์์),
๊ทธ๋ฌ๋ HTML ์ฃผ์์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ฐ์ํ ํด๊ฒฐ์ฑ ์ด ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.โ
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ Gi tHubhttps://github.com/angular/angular.js/issues/1891#issuecomment -16891970์์ ํ์ธํ์ธ์.
.
maxcan, ์์ค html์ ์ ํจํ๊ฒ ์ ์งํ๊ธฐ ๋๋ฌธ์ "๋จ์ผ ๋ฃจํธ"์ ์ฅ์ ์ ๋ณผ ์ ์์ง๋ง ํด๋น ๊ตฌ์ฑ์ ์ฌ์ฉํ๋ฉด "dl" ํ๊ทธ ์์ ๋ค๋ฅธ ๊ฒ์ ์ถ๊ฐํ ์ ์์ต๋๋ค... ์๋ฅผ ๋ค์ด ์ํ๋ ๊ณ ์ ์ ์ ๋์ ์ ์ ๋ฃจํ ์์ ํฌํจํฉ๋๋ค. lgalfaso์ ์๋ฃจ์ ์ด ์ด๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค.
@maxcan ์ ํฐ ์ฌ์์ ์ด๋ ์ฑ๋ฅ ์ ํ ์์ด ์ด ์์ฑ์ ์ถ๊ฐํ ์ ์๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ํฉ๋ฆฌ์ ์ธ ๊ฒ์ ์ด ์์ฑ์ ๋ํ ๋ณ๊ฒฝ์ผ๋ก ์ธํด ์ฌ์ปดํ์ผ์ด ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ๋๋ค๋ ๊ฒ์ ๋๋ค. [๊ทธ๋ฆฌ๊ณ ์๋ฌด๋ ์ฌ์ปดํ์ผ์ ์ข์ํ์ง ์์ต๋๋ค]
๋๋ @bowsersenior ์ ์ ์์ ์ข์ํ์ง๋ง ์ด๊ฒ์ ๋ซ๋ ์ฝ๋ฉํธ๋ก ์ ํธํฉ๋๋ค: <!-- /ng-repeat -->
ํฅํ์ ๋ถ๋๋ฌ์ด ์ผ์ด๋ค. ์๋ฌดํผ ๊ฐ๋ ฅํ๊ฒ ์ง์งํฉ๋๋ค
@lgalfaso ์ ์๋ฃจ์
, ์ง์๋ฌธ์ div์ ๋ฃ์ ์ ์๋ค๊ณ ๊ฐ์ ํ๊ณ
๊ทธ๋ฅ ๋๊ธ..
2013๋ 4์ 24์ผ ์์์ผ ์คํ 1์ 58๋ถ์ Dean Sofer [email protected]์ด ๋ค์๊ณผ ๊ฐ์ด ์์ฑํ์ต๋๋ค.
@bowsersenior https://github.com/bowsersenior ์ ์ ์์ ์ข์ํ์ง๋ง
๋๋ ์ด๊ฒ์ ๋ซ๋ ์ฝ๋ฉํธ๋ก ์ ํธํฉ๋๋ค:โ
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ Gi tHubhttps://github.com/angular/angular.js/issues/1891#issuecomment -16964155์์ ํ์ธํ์ธ์.
.
๋๋ <!-- /ng-repeat -->
๊ฐ HTML ์ฃผ์ ์ ๊ทผ ๋ฐฉ์์์ ๋ ๋์ ๋ซ๋ ํ๊ทธ๋ผ๋ @ProLoser ์ ๋์ํฉ๋๋ค. ์ฐธ๊ณ ๋ก angular๋ HTML ์ฃผ์์์ ์ง์๋ฌธ์ ์ ์ํ ์ ์๋๋ก ํ๋ฏ๋ก HTML ์ฃผ์์ ์ด ๋ฌธ์ ์ ๋ํ ์ ์ฌ์ ์ธ ์๋ฃจ์
์ผ๋ก ํ๊ธฐํ ์๋ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ํต์ฌ Angular ๊ฐ๋ฐ์๋ ์ด ์คํ ์ค๋ฒํ๋ก ์ง๋ฌธ(์๋ ํฌ์คํฐ์์ ์ง์ ํ ๋๋ก)์์ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด HTML ์ฃผ์์ ์ฌ์ฉํ ๊ณํ์์ ํ์ํ์ต๋๋ค.
๋๋ ์ด๊ฒ์ํ์ง ์๊ณ ์ด๊ฒ์ ํ ์์๋ ๋ฐฉ๋ฒ์ด์๋ ํ ๊ทธ๊ฒ๋ค์ ๋ฒ๋ฆฌ๋ ๊ฒ์ ์ ๊ฒฝ ์ฐ์ง ์์ต๋๋ค.
์ฝ๋ฉํธ.
2013๋ 4์ 24์ผ ์์์ผ ์คํ 2์ 41๋ถ, Mani Tadayon [email protected] ์์ฑ :
๋๋ @ProLoser https://github.com/ProLoser์ ๋์ํฉ๋๋ค. HTML ์ฃผ์ ์ ๊ทผ ๋ฐฉ์์์ ๋ ๋์ ๋ซ๋ ํ๊ทธ์ ๋๋ค. ํ๋
์ฐธ๊ณ , ๊ฐ๋๋ฅผ ์ฌ์ฉํ๋ฉด HTML ์ฃผ์์์ ์ง์๋ฌธ์ ์ ์ํ ์ ์์ผ๋ฏ๋ก
HTML ์ฃผ์์ด ์ด์ ๋ํ ์ ์ฌ์ ์ธ ์๋ฃจ์ ์ผ๋ก ํ๊ธฐ๋ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ฌธ์ . ํต์ฌ Angular ๊ฐ๋ฐ์๋ ๋ค์๊ณผ ๊ฐ์ด ํ์ํ์ต๋๋ค.
์ด ์คํ ์ค๋ฒํ๋ก์์ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด HTML ์ฃผ์์ ์ฌ์ฉํ ๊ณํ์ ๋๋ค.
์ง๋ฌธ(์๋ ํฌ์คํฐ์์ ์ง์ ํ ๋๋ก):โ
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ Gi tHubhttps://github.com/angular/angular.js/issues/1891#issuecomment -16969268์์ ํ์ธํ์ธ์.
.
@lgalfaso ์ ng-repeat-inner์ +1. ๋๋ ๋ง์นจ๋ด ์ด๊ฒ์ ๋๋ด๋ ๋ฌด์ธ๊ฐ๋ฅผ ์ํ๋ค.
๋ น์์์ ์ฃผ์์ผ๋ก ์ด๋ฅผ ์ํํฉ๋๋ค. ๋ น์์์์ dl ํ๊ทธ๋ก ์ํํ ์์ ์ ์ด์ํ๋ ค๊ณ ํ๋๋ฐ ์ด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ ๋๊น์ง ๋ถ๊ฐ๋ฅํ ๊ฒ ๊ฐ์ต๋๋ค.
์ด๊ฒ์ ๋ด ์๊ฒฌ์ด๋ฏ๋ก @mhevery ๋๋ @IgorMinar ์ ์
๋ ฅ ์์ด ์๊ธ ํ
์ฃผ์์ผ๋ก ng-repeat ์์
์ ์ํํ๋ ๊ฒ์ด ๋ ์ ์ฐํ๋ค๋ ๊ฒ์ ์์์ต๋๋ค. ์ด์จ๋ $compiler๋ฅผ ๋ณ๊ฒฝํ์ง ์์ผ๋ฉด ์์ฐ์ค๋ฌ์ ๋ณด์ด์ง ์์ผ๋ฏ๋ก "์ฃผ์ ์ฌ์ด" ์ ํ์ ์ง์๋ฌธ์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. ๊ทธ ์ด์ ๋ ์ง์๋ฌธ์ด ์ฃผ์ด์ง ๊ฒ์ ์ํํ๊ธฐ ์ํด ์ฃผ์ด์ง ์์์ ์ธ๋ถ๋ฅผ ์ค์ฒฉํ๊ณ ์ดํด๋ณด๋ ๋ฐ ์ฃผ์๋ฅผ ๊ธฐ์ธ์ฌ์ผ ํ๋ ๊ฒ์ด ์ด์ํด ๋ณด์ด๊ธฐ ๋๋ฌธ์
๋๋ค.
๋๊ธ/๋๊ธ ์์์ด ๊ณ์๋๋ ๋ ผ๋์ ์์ธ์ด๋ผ๋ฉด ๋ ๋ค ๊ฐ์ง ์๋ ์๋์? ์ด๋ ๊ฒ ํํ ๋ฌธ์ ๊ฐ 3๊ฐ์ ์ด์ ํด๊ฒฐ๋์ง ์์๋ค๋ ์ฌ์ค์ ์ดํดํ๊ธฐ ์ด๋ ต์ต๋๋ค. ๊ทธ ์ด์ ๊ฐ ์ฃผ๋ก ๊ตฌํ์ ๋ํ ๋ ผ๋์ผ๋ก ์ธํ ๊ฒ์ด๋ผ๋ฉด, ๋ "์ต์ "์ธ ๊ฒ์ ์๋ฌด ๊ฒ๋ ์์ด ๋ ์ค๋ ๊ธฐ๋ค๋ฆฌ๋ ๊ฒ๋ณด๋ค ์ค์ ๋ก ๊ตฌํ(๊ทธ๋ฆฌ๊ณ ์๋ง๋ ์ ๋ฐ์ดํธ/์ถ๊ฐ)ํ๋ ๊ฒ์ด ๋ ๋์ ๊ฒ ๊ฐ์ต๋๋ค.
๊ทธ๋ฌ๋ ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ng-repeat-inner๊ฐ ํน์ ํญ๋ชฉ "๋ด์์" ์ผ๋ จ์ ์์๋ฅผ ๋ฐ๋ณตํ๋ ๊ฒ์ ์๋ฏธํ๋ ๊ฒฝ์ฐ ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ์ด๋ฏธ ์ผ์ข ์ ๋ ์ ์ธ๋ถ ์ปจํ ์ด๋๋ฅผ ์์ฑํ์์ ์๋ฏธํฉ๋๋ค. ๋ฐ๋ผ์ ์ฃผ์ ๊ตฌํ์ด ๋ ๋ค์ฌ๋ค๋ฅํ ์ ์์ง๋ง(๊ฐ๋ฅํ๋ฉด ํผํ๊ณ ์ถ์ ์ถ๊ฐ 1/2์ค์ ์ฝ๋์ผ์ง๋ผ๋) ์์ ๋ด ์ง์๋ฌธ.
HTML ์ฃผ์ ์ฌ์ฉ ์ฌ๋ถ์ ๋ฌธ์ ๋ ์ด ๋ฌธ์ ๊ฐ ๋ช ๋ฌ ๋์ ๋ฏธํด๊ฒฐ ์ํ์๋ค๋ ์ฌ์ค๊ณผ ๊ด๋ จ์ด ์์ต๋๋ค. ๋ฌธ์ ๋ฅผ ๊ฒฐ์ ํ๊ณ ์๋ฃจ์ ์ ๊ตฌํํ๊ธฐ ์ํด Angular ์ ์ง ๊ด๋ฆฌ์์ ์ฃผ์๊ฐ ํ์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋์น ๊ฒฝ์ฐ ์ฃผ์ ๊ธฐ๋ฐ ๋ฐ๋ณต๊ธฐ์ ๋ฌธ์ ์ ๋ํด์๋ https://github.com/angular/angular.js/pull/1646์ ์ฐธ์กฐํ์ธ์. @lgalfaso ์๋ฃจ์ ์ ์ด ์์ ์์ ํจ์ฌ ๋ ์ ๋งํฉ๋๋ค.
์ง์ ํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค #1646 . @mhevery์ ํ ๋ก ์ ์ฝ๋๋ฅผ ํ์ํ์ง ์๊ณ "๋ ๋์ ๋ฐฉ๋ฒ"์ ์ ์
"๋ ๋์ ๋ฐฉ๋ฒ"์ด ๋ฌด์์ธ์ง ์์์ผ๋ฉด ์ข๊ฒ ์ต๋๋ค!
ํต์ฌ ํ์ ํฉ์๋ ํ์ฌ ์ด ๋ฌธ์ ์ ์ ๊ทผํ๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ๋ค์ ์ค ํ๋๋ผ๋ ๊ฒ์ ๋๋ค.
์ด ๋ชจ๋ ์์ ์๋ 2๊ฐ์ td
ํ๊ทธ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ๋๋ repeater๊ฐ ์์์ ์์ ์์์ ๋ํด ๋ฐ๋ณต์ ํ์ฉํด์ผ ํ๋ค๋ ๊ฒ์ ๋ณด์ฌ์ฃผ๊ณ ์ถ์๊ธฐ ๋๋ฌธ์ ๋ถ๋ฒ์ด์ง๋ง ์๋์ ์ผ๋ก ์ด ์์
์ ์ํ ํ์ต๋๋ค. ์ด ์์ ๋ฅผ ํ
์ด๋ธ์ ์ฌ์ฉํ๋๋ก ๋ณํํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ฐ ํ
์ด๋ธ ํ, ํ์ง๋ง ์ง๊ธ์ ์คํ๋ผ์ธ ์ํ๊ฐ ๋๋ ค๊ณ ํ๋ฏ๋ก ๋ฆฌํฉํ ๋งํ ์๊ฐ์ด ์์ต๋๋ค.
๊ตฌ๋ฌธ A:
<dl>
<dt ng-repeat="(name, definition) in myList">{{name}}</dt>
<dd ng-repeat-next>{{definition}}</dd>
<dd ng-repeat-next>{{definition}}</dd>
</dl>
๊ตฌ๋ฌธ B:
<dl>
<dt ng-repeat-start="(name, definition) in myList">{{name}}</dt>
<dd>{{definition}}</dd>
<dd ng-repeat-end>{{definition}}</dd>
</dl>
๊ตฌ๋ฌธ C:
<dl>
<dt ng-repeat="(name, definition) in myList" ng-repeat-start>{{name}}</dt>
<dd>{{definition}}</dd>
<dd ng-repeat-end>{{definition}}</dd>
</dl>
๊ตฌ๋ฌธ D:
<dl>
<dt ng-repeat="(name, definition) in myList" ng-repeat-group>{{name}}</dt>
<dd ng-repeat-group>{{definition}}</dd>
<dd ng-repeat-group>{{definition}}</dd>
</dl>
์ฅ๊ธฐ์ ์ผ๋ก ๋ธ๋ผ์ฐ์ ์ง์์ด ๊ฐ์ ๋๋ฉด ์๋ก์ด <template>
์์๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋จํ ๋ค์์ ์ํํ ์ ์์ต๋๋ค.
๊ตฌ๋ฌธ X:
<template>
<dl>
<ng repeat="(name, definition) in myList">
<dt>{{name}}</dt>
<dd>{{definition}}</dd>
<dd>{{definition}}</dd>
</ng>
</dl>
</template>
์ด ์๋ฃจ์ ์ ๋ํ PR์ ์์ฑํ๋ ค๋ ์ฌ๋์ด ์์ผ๋ฉด ๋ณํฉ๋ฉ๋๋ค. ๋ํ ํน์ ๊ตฌ๋ฌธ์ ๋ํ ์ ํธ ์ฌํญ์ด ์์ผ๋ฉด ๋ง์ํด ์ฃผ์ญ์์ค.
์ ๋ ฅํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๋ด ๊ด์ ์์ ๊ตฌ๋ฌธ A๋ ๋ค์๊ณผ ๊ฐ์ ์ค์ฒฉ ๋ฃจํ์ ๋ํด ๋ช ํํ์ง ์์ต๋๋ค.
<dl>
<dt ng-repeat="...">loop 1</dt>
<dt ng-repeat="..." ng-repeat-next>loop 2</dt>
<dd ng-repeat-next>is this within loop 2 or only loop 1</dd>
</dl>
๊ตฌ๋ฌธ B์ C๋ ๊ฑฐ์ ๋์ผํฉ๋๋ค. ์ ๋ ๋ ๊ฐ์ง ๋์์ ๋ชจ๋ ์ข์ํฉ๋๋ค(์ฌ์ง์ด ๊ตฌ๋ฌธ B๊ฐ ๋ ๋ซ๋ค๊ณ ์๊ฐํ๋๋ผ๋)
๋ด๊ฐ ๋ญ๊ฐ๋ฅผ ๋์น๊ณ ์์ง ์๋ค๋ฉด ๊ตฌ๋ฌธ D์๋ ๊ตฌ๋ฌธ A์ ๋์ผํ ์ค์ฒฉ ๋ฃจํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
์์ ํ ์ต์ํ์ ํธ์ง๋ฅผ ์จ์ผํ๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฅํ๋ฉด B๋ก ๊ฐ ๊ฒ์ ๋๋ค. ๋ํ ๊ฐ์ฅ ๋์นญ์ ์ผ๋ก ๋ณด์ ๋๋ค. ์๊ฐ์ ๋์นญ์ผ๋ก ์ธํด ๊ด๋ฆฌํ๊ธฐ๊ฐ ๊ฐ์ฅ ์ฌ์ธ ๊ฒ ๊ฐ์ต๋๋ค.
lgalfasos์ ์๊ฒฌ์ ํฅ๋ฏธ๋ก์ด ๋๋ ๋ง๋ฅผ ์ง์ ํฉ๋๋ค. ๊ทธ์ ์์์ ์ค์ฒฉ ๋ฃจํ๊ฐ ๋ ๋ฒ์งธ๊ฐ ์๋ ์ฒซ ๋ฒ์งธ ์์์ ์์ผ๋ฉด ์ด๋ป๊ฒ ๋ ๊น์? ๊ทธ๋ฐ ๋ค์ ๋ด๊ฐ ๋๋ฝ๋ ๊ฒ์ด ์๋ ํ ๋ชจ๋ ๋ฒ์ ์ ๊ตฌ๋ฌธ์ด ์ด์ ๋ถ๋ถ๋ช ํฉ๋๋ค.
<template>
๋ํ์๋ ๋ถ๊ตฌํ๊ณ @lgalfaso ๊ฐ ์ ์ํ ng-repeat-inner
์ ๊ตฌ๋ฌธ X์ ng repeat
์ฌ์ด์ ์ฐจ์ด์ ์ ์ ์ดํดํ์ง ๋ชปํฉ๋๋ค. ๋๊ตฐ๊ฐ ์ค๋ช
ํด ์ฃผ์๊ฒ ์ต๋๊น?
๋๋ ๊ทธ๊ฒ์ ์ดํดํ๊ณ ์๋์ง ํ์คํ์ง ์์ง๋ง <ng>
ํ๊ทธ๊ฐ DOM์ ์ผ๋ถ๊ฐ ๋์ง ์์ dl
์๋์ ์๋ชป๋ ์ค์ฒฉ ๊ตฌ์กฐ๋ฅผ ํผํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ ์๋ ๊ตฌ๋ฌธ์ ๋ํด์๋ B์ ํฌํํ๊ฒ ์ต๋๋ค.
X์ ๊ฒฝ์ฐ ๊ตฌ๋ฌธ์ด DOM์ ์ผ๋ถ๊ฐ ์๋๋ฉฐ ๋ค์ํ ์ง์๋ฌธ์ ํธ์คํธํ ์ ์๋ ์ผ๋ฐ ๋๋ฏธ ๋ํผ ์์ <ng>
๋ฅผ ํ์ฉํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด๊ฒ์๋ณด๋ค ์ผ๋ฐ์ ์ธ์
๋๋ค ng-repeat-inner
์๋ง ํน์ ์ฌ์ฉ ์ผ์ด์ค์ ์ ์ฉ๋๋, ng-repeat
.
๊ตฌ๋ฌธ X ๊ฒฝ์ฐ, ์ฅ๊ธฐ ๋ชฉํ๋, ๋จ์ง ๋ ์ผ๋ฐ์ ์ธ ๋ฒ์ ์
๋๋ค ng-repeat-inner
, ๋ด๊ฐ ๋๋ผ๋ ๊ทธ ng-repeat-inner
๋ (* ์ ์ ์ผ๋ก๋์ง ์์) ์ ์ ๋ A, B ์ค ํ๋๋ฅผ ๋ฐ๋ผ ์ฑํ๋์ด์ผํ๋ค, ๋ค์์ ๋ํ C,D:
ng-repeat-inner
๋ ๋ชจ๋ ๋์ผํ dom ๊ตฌ์กฐ๋ฅผ ๊ฐ์ต๋๋ค.ng-repeat-inner
์ด๋ฉด ์ถฉ๋ถํฉ๋๋ค.@ daegon123 @IgorMinar์ ๋์ด ๊ตฌ๋ฌธ (ํฌํจ X)๊ณผ์ ์ฐจ์ด ng-repeat-inner
์ ํ์ค๋ ์์๋ก ๋ณ๊ฐ์ ์ฉ๊ธฐ์์ด ์์์ ์งํฉ์ ๋ฐ๋ณต ํ ์ ์๋ค๋ ๊ฒ์
๋๋ค. ์๋ฅผ ๋ค์ด table
๋๋ tbody
๋ฐ๋ณต๋์ง ์๋ ๋ค๋ฅธ <tr>
๊ฐ ์๋ ๋์ <tr>
์ธํธ๋ฅผ ๋ฐ๋ณตํฉ๋๋ค. ์ด ๊ฒฝ์ฐ ๋ฐ๋ณตํ ์์์๋ ng-repeat-inner
๋ฅผ ๋ฐ์ธ๋ฉํ ๊ณ ์ ํ ๋ถ๋ชจ๊ฐ ์์ต๋๋ค.
<table>
<thead>...</thead>
<tr ng-repeat-start="(name, definition) in myList">...</tr>
<tr>...</tr>
<tr ng-repeat-end>...</tr>
<tr>...</tr>
<tfoot>...</tfoot>
</table>
๋๋ <dl>
๊ฐ์ฒด๋น ์ฌ๋ฌ ์ ์
<dl>
<dt ng-repeat-start="...">{{item.term1}}</dt>
<dd>{{item.def1}}</dd>
<dt>{{item.term2}}</dt>
<dd>{{item.def2}}</dd>
<dt>{{item.term3}}</dt>
<dd ng-repeat-end>{{item.def3}}</dd>
</dl>
@es128 ๋๊ธ๊ณผ ์ฝ๋ ๊ฐ์ฌํฉ๋๋ค. ์ด๊ฒ์ด ๋ฐ๋ก ๋ด๊ฐ ng-repeat-inner
๋์ด๋ ๋ค๋ฅธ ๊ตฌ๋ฌธ ์ค ํ๋์ ํจ๊ป 'ํ์ฉ'ํ๋๋ก ์ ์ํ ์ด์ ์
๋๋ค. ๊ทธ๋ฌ๋ ๊ทํ์ ์ฃผ์์์ ์ค์ ์ฝ๋๋ฅผ ๋ณด๊ณ ng-repeat-inner
๊ฐ ํ์ํ์ง ๊ถ๊ธํด์ง๊ธฐ ์์ํ์ต๋๋ค. ๋ด๊ฐ ๋ญ๊ฐ๋ฅผ ๋ฐ๊ฒฌํ๋ฉด ๋ ๋ค๋ฅธ ์๊ฒฌ์ ๊ฒ์ํ ๊ฒ์
๋๋ค - ๋ค์ ๊ฐ์ฌํฉ๋๋ค!
ng-repeat-inner์ ๋ฌธ์ ๋ ๋ชจ๋ ๊ฒฝ์ฐ์ ์ฌ์ฉํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
<ul>
<li>some static prefix item</li>
<!-- repeat these nodes -->
<li>{{ something }}</li>
<li>{{ something else }}</li>
<!-- repeat end -->
<li>some static postfix item</li>
</ul>
์ธ์์ ์ธ ์์(div์ ๊ฐ์)๋ฅผ ul(html ์ฌ์์ ๋ฐ๋ผ)์ ๋ฃ์ ์ ์๊ธฐ ๋๋ฌธ์ ng-repeat-inner๋ ์ฌ๊ธฐ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
btw ํ ํ๋ฆฟ ์์๋ฅผ ์ฌ์ฉํ๋ฉด ul๊ณผ li ์ฌ์ด์ ์ธ๊ณต ์์๋ฅผ ๋ฃ์ ์ ์์ต๋๋ค.
๋ํ ๊ตฌ๋ฌธ X์ ๋๋ฌด ์ง์ฐฉํ์ง ๋ง์ญ์์ค. ์ฐ๋ฆฌ๊ฐ ๊ถ๊ทน์ ์ผ๋ก ์ ํํ ๊ตฌ๋ฌธ์ ์ํํ ์ ์๋ ๊ฒ์ ๋ํ ๋น ๋ฅด๊ณ ๋๋ฌ์ด ์์ผ ๋ฟ์ด์ง๋ง ์์ง ๋ ผ์ ์ค์ด์ง๋ง ์ฌ๊ธฐ์ ๋ ๋ค๋ฅธ ๊ฒ์ด ์์ต๋๋ค. ํ๋:
๊ตฌ๋ฌธ Y:
<ul>
<li>some static prefix item</li>
<template repeat="item in items">
<li>{{ item.name }}</li>
<li>{{ item.owner }}</li>
</template>
<li>some static postfix item</li>
</ul>
ng-repeat ๊ทธ๋ฃน์ id๋ฅผ ์ค์ ํ๋ ๊ฒ์ ์ด๋ป์ต๋๊น?
๊ทธ๋ฐ ๋ค์ ๋ชจ๋ ์์ค์์ ํญ๋ชฉ์ ์์ ๋กญ๊ฒ ์ฒจ๋ถํ ์ ์์ต๋๋ค. ๊ฐ์ ๊ฒ
<dl>
<dt ng-repeat="item in items" ng-repeat-group="someId">{{item.term}}</dt>
<dd ng-repeat-with="someId">{{item.definition}}</dd>
</dl>
์ฐ๋ฆฌ๊ฐ ํ์๋ก ํ๋ ์ ์ฐ์ฑ์ ํ์ฉํ ์ ์์ต๋๋ค.
๊ตฌ๋ฌธ C์ ์ ์๋ ๊ตฌํ์ ์ด๊ฒ์ด ๋ค๋ฅธ ์์ ๋ฐ ์ง์๋ฌธ์ ๋ํด ์ด์ ๋์ผํ ๋ฉ์ปค๋์ฆ์ ์ฝ๊ฒ ํ์ฉํ๋ ๊ตฌ๋ฌธ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์ํ์ด ๋ฃจ์นด์ค! ๋๋ ๊ตฌ๋ฌธ C๋ฅผ ๊ตฌํํ๊ธฐ ์ํด ์ ๋
์ ๋ณด๋์ต๋๋ค. ์ ๋๋ก ์๋ํ์ง๋ง ๋ชจ๋ ng-repeat
๋ฅผ ์ฃผ์์ผ๋ก ๋ฐ๊พธ๋ transclusion์ผ๋ก ์ธํด ์ค์ฒฉ์ด ์ง์๋์ง ์์ต๋๋ค.
ng-repeat-start
์ฐพ๋ DOM์ ๊ฐ๋ก์ง๋ฅด์ง ๋ชปํ๋ฉด ๋งค์นญ์ ์ํ ng-repeat-end
์์ฑ์ ๊น์ด๋ฅผ ๊ณ์ฐํ ์ ์์ต๋๋ค. ๋น์ ์ ์ ๊ทผ ๋ฐฉ์์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ ๊ฐ์ต๋๋ค ...
ํ ... ๋ญ๊ฐ ์๋ชป๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ปค๋ฐ์ ๋ฌธ์๊ฐ ๋๋ฝ๋์์ผ๋ฏ๋ก ์ฌ๋ฐ๋ฅธ ๊ตฌ๋ฌธ์ ์ฌ์ฉํ๊ณ ์์ง ์์ ์ ์์ต๋๋ค.
์ด๊ฒ์ ๋ํด ์ดํด๋ณด์ญ์์ค.
http://plnkr.co/edit/sVilxKaNrhNM4JrkuQ5r?p=preview
์ค์ฒฉ๋์ง ์์ ๊ฒฝ์ฐ์ ์ถ๋ ฅ์ ๋ค์๊ณผ ๊ฐ์ ๊ฒ์ผ๋ก ์์ํ์ต๋๋ค.
Term: elastic
Static term
This definition should be repeated for every term: 'elastic' term
Term: par
Static term
This definition should be repeated for every term: 'par' term
๊ทธ๋ฆฌ๊ณ ์ค์ฒฉ๋ ๊ฒ์ ๊ฒฝ์ฐ:
Term: elastic
Static term
Subterm: superelastic
Static subterm
This should be repeater for every subterm: 'super' subterm from 'elastic' term
Subterm: subelastic
Static subterm
This should be repeater for every subterm: 'sub' subterm from 'elastic' term
This definition should be repeated for every term: 'elastic' term
Term: par
Static term
Subterm: superpar
Static subterm
This should be repeater for every subterm: 'super' subterm from 'par' term
Subterm: subpar
Static subterm
This should be repeater for every subterm: 'sub' subterm from 'par' term
This definition should be repeated for every term: 'par' term
๋ด๊ฐ ๋ญ๊ฐ๋ฅผ ๋์น๊ณ ์์ต๋๊น?
@lrlopez ๋น์ ์ด ๋ฃ์ ์์ ๋ ์ต์ ๋ฒ์ ์ ์ฝ๋๋ฅผ ์ฌ์ฉํ์ง ์์ต๋๋ค. ๋ํ 23ํ์ ์ถ๊ฐ </dl>
๊ฐ ์์ต๋๋ค.
๋น ๋ฅธ ๋ต๋ณ ๊ฐ์ฌํฉ๋๋ค! ๋ง์ต๋๋ค. 23ํ์ </dl>
๊ฐ ์ถ๊ฐ๋ก ์์์ต๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์
๋ฐ์ดํธํ์ต๋๋ค. ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ๋๋ ์ฌ์ ํ ์ค์ฒฉ ๋ ์์ ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค ...
์ข์ต๋๋ค. DOM์์ ๋์ผํ ์์ค์ ์๋ ๋ค์ค ์์ ์ง์๋ฌธ์ ๋ํ ์ค์ ๋ฌธ์ ์ธ ๊ฒ ๊ฐ์ต๋๋ค. ์ด ๋ฌธ์ ์ ๋ํ ์์ ์ฌํญ์ผ๋ก PR์ ์ ๋ฐ์ดํธํ์ต๋๋ค.
ng-repeat-inner ๋๋ ng-repeat-next์ ๊ฐ์ ์์ ์ฌํญ์ ์ค์ DOM ๋ ธ๋์ ๋ฐ์ธ๋ฉ ๋์์ด ์ ํ๋๋ ์๋ง์ ์ํฉ ์ค ํ๋๋ง ํด๊ฒฐํฉ๋๋ค.
๋ชจ๋ ์ง์๋ฌธ์ ๊ฐ๋ณ์ ์ผ๋ก ํจ์นํ๋ ๋์ ์ค์ ํธ๋ฆฌ์์ ๋ ๋๋ง๋์ง ์๋ ๊ฐ์ ๋ ธ๋์ ๋ํ ์ง์์ ์ถ๊ฐํ์ฌ ์ ์ฒด ํ๋ ์์ํฌ์ ๋ํด ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค.
์ฃผ์์ ์ฌ์ฉํ๋ ์์ด๋์ด๋ ๋น์ทํ์ง๋ง ๋ณด๊ธฐ ํํ๊ณ ์ฝ๊ธฐ ์ด๋ ค์ด ์ฝ๋๊ฐ ๋๊ณ ์ฌ์ ํ ํด๋น ๋ ธ๋์ ์ด๋ฆ์ ์ง์ ํ๊ณ ์ด๋ป๊ฒ๋ ๋ซ์ ๋ฐฉ๋ฒ์ด ํ์ํฉ๋๋ค. ์๋ก์ด ์ฃผ์ ๋ ธ๋ ๊ตฌ๋ฌธ์ ๋ฐ๋ช ํ๋ ๋์ ๊ธฐ์กด HTML ๊ตฌ๋ฌธ์ ์ฌ์ฉํ์ญ์์ค.
SASS ์๋ ํด๋์ค์ ์ ์ฌํ ๊ฐ๋ ์ผ๋ก ์๊ฐํ์ญ์์ค.
<div id="myComplexList">
<ng-virtual ng-repeat="...">
<a></a>
<b></b>
<c></c>
</ng-virtual>
</div>
Result:
<div id="myComplexList">
<a></a>
<b></b>
<c></c>
<a></a>
<b></b>
<c></c>
<a></a>
<b></b>
<c></c>
...
</div>
์ผ๋ฐ์ ์ธ ์์ด๋์ด์ +1ํ์ง๋ง ng-repeat-group๊ณผ ๊ฐ์ ๊ฒ์ ์ ํํฉ๋๋ค.
<ng-repeat-group="b in ches">
// group markup to be repeated here
</ng-repeat-group>
๋๋ ๊ฐ์ ๋ ธ๋์ ์์ด๋์ด๋ฅผ ์ข์ํ์ง๋ง ์ฌ๊ธฐ์ ๋ฌธ์ ์ ๋ํ ์ผ๋ฐ์ ์ธ ์๋ฃจ์ ์ด ๋๋ ๊ฒ์ ๋ฐ๋ํฉ๋๋ค.
๊ฐ๋ฅํ๋ค๋ฉด ์ธ๊ณต ์ฉ๊ธฐ์ ์์ฑ์ ์ ํํ๊ณ ์ถ์ต๋๋ค. ์ ์ฒด ๊ฒฐ๊ณผ์ html์ ์ปจํ ์ด๋๊ฐ ํ์๋์ง ์์ ์ ์์ง๋ง ๊ด๋ฆฌ๊ฐ ํ์ํ html ์ฝ๋๊ฐ ๋ณต์กํด์ง๊ธฐ ์์ํ ๊ฒ์ ๋๋ค.
๋ง์ ๊ฒฝ์ฐ ๋ฐ๋ณตํ๊ณ ์ถ์ ๋ด์ฉ์ ๋ด์ ์ปจํ ์ด๋๊ฐ ํ์ํฉ๋๋ค. ์ :
<tr>
<td ng-repeat-start>1</td>
<td ng-repeat-end>2</td>
</tr>
(์ฌ๊ธฐ์ ์ปจํ ์ด๋๋ [tr]์)
์ ์๋ ๊ฐ์ ๋ ธ๋ ์๋ฃจ์ ์ ์ฌ์ฉํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๋ฐ๋๋๋ค.
<tr>
<ng-virtual ng-repeat="...">
<td>1</td>
<td>2</td>
</ng-virtual>
</tr>
์ค๋ณต ์ปจํ ์ด๋ ๋ง๋ค๊ธฐ: ์ด ๋ ์ค ์ถ๊ฐ์กฐ์ฐจ๋ ์ฝ๋๊ฐ ๋ ๊ธธ์ด์ง๋ฉด ์ด๋จ์ง ์๊ฐํ๋ ๊ฒ์ด ๋ถํธํฉ๋๋ค.
๋ ๋ค๋ฅธ ๋ฌธ์ ๋ ์ฝ๋๊ฐ ํ์ฌ ์ด๋ ์์ค์ dom์ ์๋์ง ํ์
ํ๋ ๊ฒ์ด ์ง๋ฃจํด์ง๊ธฐ ์์ํ๋ค๋ ๊ฒ์
๋๋ค.
๋ค์์ @es128 ์ ์ฝ๋์
๋๋ค.
<table>
<thead>...</thead>
<tr ng-repeat-start="(name, definition) in myList">...</tr>
<tr>...</tr>
<tr ng-repeat-end>...</tr>
<tr>...</tr>
<tfoot>...</tfoot>
</table>
๊ฐ์ ๋ ธ๋๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๋ฐ๋๋๋ค.
<table>
<thead>...</thead>
<ng-virtual ng-repeat="...">
<tr">...</tr>
<tr>...</tr>
<tr>...</tr>
</ng-virtual>
<tr>...</tr>
<tfoot>...</tfoot>
</table>
์ฒ์ 3๊ฐ์ tr๊ณผ ๋ง์ง๋ง tr์ ๋ฐ๋ณต์ ๊ฐ์ ์์ค์ ์์ง๋ง ์ฝ๋๋ฅผ ๊ฐ๋จํ ํ์ด๋ณด๋ฉด ์๋ก ๋ค๋ฅธ ์์ค์ผ๋ก ์ค์ธํ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๋ ์์ ์ ์ฐพ๊ธฐ ์์ํ ๊ฒ์ ๋๋ค. ์ฝ๋๊ฐ ์์ ์ค์ธ ์์ค์ ์ง๋ฃจํ๊ฒ ๊ณ์ฐ(์๋ง๋ ์๋ชป๋์์ ์ ์์), ํนํ ์ด๋ฌํ ํญ๋ชฉ์ด ์ค์ฒฉ๋๊ธฐ ์์ํ๋ ๊ฒฝ์ฐ.
๋ค์์ ๋ด๊ฐ ์ข์ํ๋ ํน์ ๋ฒ์ ์ ๊ตฌ๋ฌธ์ ๋๋ค(B ์ข ๋ฅ).
<ul>
<li>some static prefix item</li>
<li ng-repeat-block="(name, definition) in myList">{{ something }}</li>
<li>{{ something else }}</li>
<li ng-repeat-block-close>{{ something else }}</li>
<li>some static postfix item</li>
</ul>
@stanvass ๊ทํ์ ์ ์์ @IgorMinar ๊ฐ ๊ตฌ๋ฌธ X๋ก ๊ฒ์ํ ๊ฒ์ ๋ณํ์ ๋๋ค. ์ฃผ์ ๋ฌธ์ ๋ ๋ธ๋ผ์ฐ์ ์ง์์ด ๊ฑฐ๊ธฐ์ ์๋ค๋ ๊ฒ์ ๋๋ค.
ํ๋์ ๋ด๋ถ ์์๋ง ๋ฐ๋ณตํ๋ ค๋ ๊ฒฝ์ฐ ng-repeat-start
๋ฐ ng-repeat-end
๋ฅผ ๋ชจ๋ ๊ฐ๋ ๊ฒ์ด ์ค๋ณต๋๋ค๋ ๊ฒ์ ๋ฐฉ๊ธ ๊นจ๋ฌ์์ต๋๋ค.
<tr>
<td ng-repeat-start ng-repeat-end>repeat this</td>
</tr>
์ด๊ฒ์ ๋ฐฉ์งํ๋ ng-repeat-single
์์ผ๋ฉด ์ข์ ๊ฒ์
๋๋ค. ์ .
<tr>
<td ng-repeat-single>repeat this</td>
</tr>
@daegon123 ๋จ์ผ ์์๋ฅผ ๋ฐ๋ณตํ๋ ค๋ฉด ๋ค์์ ์ํํ์ญ์์ค.
<tr>
<td ng-repeat="...">repeat this</td>
</tr>
ng-repeat-start
๋๋ ng- repeat-end
@lgalfaso ๊ฐ์ฌํฉ๋๋ค. ์ ์๋ ๊ตฌ๋ฌธ์ ๋๋ฌด
์ด ๋ฌธ์ ๋ ๋จ์ํ ํ ์์๋ฅผ ๋ฐ๋ณตํ๋ ๋ฌธ์ ๊ฐ ์๋๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋ถ๋ชจ๋ฅผ ๋ฐ๋ณตํ์ง ์๊ณ ์์ ์งํฉ์ ๋ฐ๋ณตํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ๋ด์ฉ์
๋๋ค. ์ฆ <dt>..<dd>...
- ํ์ง๋ง ์ฌ๊ธฐ์๋ ๋ค๋ฅธ ์ข์ ์๊ฐ ๋ง์ด ์์ต๋๋ค.
๊ตฌ๋ฌธ X๋ ๋ฐ๋ณต ์ค์ฒฉ์ ์์ํ๋ฉด ์ ์ ์๋ ์ ์ผํ ๊ตฌ๋ฌธ์ ๋๋ค. Syntax AD์์ ๋ค์์ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
<template>
<dl>
<ng repeat="book in myList">
<dt ng-repeat="author in book.authors">{{author.name}}</dt>
<dd>{{book.title}}</dd>
<dd>{{book.description}}</dd>
</ng>
</dl>
</template>
๋ ๋์ ์ ์์
๋๋ค.
My Blackberryยฎ์์ ๋ณด๋ธ
------์๋ฌธ-----
๋ณด๋ธ ์ฌ๋: daegon123 [email protected]
๋ ์ง: 2013๋
5์ 6์ผ ์์์ผ 22:57:16
๋ฐ๋ ์ฌ๋: angular/angular.jsangular. [email protected]
๋ต์ฅ: "angular/angular.js" [email protected]
์ ๋ชฉ: Re: [angular.js] ngRepeat with DL / DD / DT (#1891)
ํ๋์ ๋ด๋ถ ์์๋ง ๋ฐ๋ณตํ๋ ค๋ ๊ฒฝ์ฐ ng-repeat-start
๋ฐ ng-repeat-end
๋ฅผ ๋ชจ๋ ๊ฐ๋ ๊ฒ์ด ์ค๋ณต๋๋ค๋ ๊ฒ์ ๋ฐฉ๊ธ ๊นจ๋ฌ์์ต๋๋ค.
<tr>
<td ng-repeat-start ng-repeat-end>repeat this</td>
</tr>
์ด๊ฒ์ ๋ฐฉ์งํ๋ ng-repeat-single
์์ผ๋ฉด ์ข์ ๊ฒ์
๋๋ค. ์ .
<tr>
<td ng-repeat-single>repeat this</td>
</tr>
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ GitHub์์ ํ์ธํ์ธ์.
https://github.com/angular/angular.js/issues/1891#issuecomment -17524685
+1, ์ด๊ฒ์ ํฐ ํ๊ณ์ ๋๋ค.
:+1: ์ด์ ๋ํ ์๋ฃจ์
์ ๊ธฐ๋ํฉ๋๋ค! ์ง๊ธ์ <li>
๋ฅผ ์ฌ์ฉํ๋ ค๊ณ ํ์ง๋ง ์ด์ ๋ํ ์๋ฃจ์
์ ์ ๊ณตํ๋ angular๊ฐ ๋์ฌ ๋ ํด๋น ๋งํฌ์
์ ๋ฆฌํฉํฐ๋งํ๊ณ ์ถ์ต๋๋ค.
#2783์ด ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๊น์?
์. ๋ฐฉ๊ธ ๋์ฐฉํ ์๋ฃจ์ ์ด ์์ต๋๋ค. e46100f7097d9a8f174bdb9e15d4c6098395c3f2
์ด ๋ฌธ์ ๋ฅผ ๋ซ์ต๋๋ค.
์ด ๊ฐ๋จํ ์์์ <TypeError: Object #<Text> has no method 'hasAttribute'>
์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค.
<table>
<tr ng-repeat-start="value in [1,2,3,4]">I get repeated</tr>
<tr ng-repeat-end>I also get repeated</tr>
</table>
๋ํ ๋ฌธ์ ๋ฅผ gevgeny ์ํ๋ก ๊ฐ์ ธ์ต๋๋ค.
<tr>
<td data-ng-repeat-start="column in selectedItem.Beds" class="text-center">Avail. Beds</td>
<td data-ng-repeat-end>Extra Bed Spaces</td>
</tr>
@kharnt0x ์ด puul ์์ฒญ์ ์ฐธ์กฐํ์ญ์์ค https://github.com/angular/angular.js/pull/2859
#2783์ ์ด๊ฒ์ ์ด๋ป๊ฒ ํด๊ฒฐํ ๊น์?
{[{h: "1",
o: [{h: "1.1",
o: [{h: "1.1.1"},
{h: "1.1.2"},
{h: "1.1.3"}]},
{h: "1.2",
o: [{h: "1.2.1"},
{h: "1.2.2"},
{h: "1.2.3"}]},
....
๋ค์๊ณผ ๊ฐ์ด ์ถ๋ ฅํด์ผ ํฉ๋๋ค.
<h1>1</h1>
<h2>1.1</h2>
<h3>1.1.1</h3>
<h3>1.1.2</h3>
<h3>1.1.3</h3>
<h2>1.2</h2>
<h3>1.2.1</h3>
<h3>1.2.2</h3>
<h3>1.2.3</h3>
๊ตฌ๋ฌธ์ ๋ฌด์์ ๋๊น?
@ChrisCinelli hgroup
์ฌ์ฉํด ๋ณด์ธ์
<h1>1</h1>
<hgroup>
<h2>1.1</h2>
<hgroup>
<h3>1.1.1</h3>
<h3>1.1.2</h3>
<h3>1.1.3</h3>
<hgroup>
<h2>1.2</h2>
<hgroup>
<h3>1.1.1</h3>
<h3>1.1.2</h3>
<h3>1.1.3</h3>
<hgroup>
<hgroup>
๋ฐ๋ผ์ hgroup์ HTML5( http://html5doctor.com/the-hgroup-element/ )์์ ์ ๊ฑฐ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ ์ธ์๋ ๋ฌธ์ ๊ฐ ๋ ๋ณต์กํ๊ณ ํค๋ ํ๊ทธ๊ฐ ์๋ฅผ ๋ค์ด ์ฌ์ฉ๋์๋ค๊ณ ๋งํ๊ธฐ ๋๋ฌธ์
๋๋ค.
์ด๊ฒ์ ๋ถ๋ช
ํ ํ์ฉ๋์ด์ผ ํ๋ฉฐ Angular์ ์ ์ธ์ ๋ทฐ ์ฒ ํ์ ์ ํ ์๋ฐํ์ง ์๋ ์ฌ์ฉ ์ฌ๋ก์
๋๋ค...
์ฐพ๊ณ ์๋ ํน์ ์ถ๋ ฅ์ ๋ํด CSS๋ฅผ ๊ณ ๋ คํ์ต๋๊น?
์นด์ดํฐ?
๋ณด๋ค:
https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Counters
http://css-tricks.com/almanac/properties/c/counter-increment/
2013๋ 6์ 18์ผ ํ์์ผ ์คํ 2์ 46๋ถ์ Chris Cinelli [email protected]์ด ์์ฑํ์ต๋๋ค .
๋ฐ๋ผ์ hgroup์ด HTML5์์ ์ ๊ฑฐ๋ ๊ฒ ๊ฐ์ต๋๋ค(
http://html5doctor.com/the-hgroup-element/ ) ๊ทธ ์์ ๋ด๊ฐ ๊ทธ๋ฌ๋ฏ์ด
๋ฌธ์ ๊ฐ ๋ ๋ณต์กํ๊ณ ํค๋ ํ๊ทธ๊ฐ
์์.
์ด๊ฒ์ ๋ถ๋ช ํ ํ์ฉ๋์ด์ผ ํ๊ณ ๋ค์์์ ์ค๋จ๋์ง ์๋ ์ฌ์ฉ ์ฌ๋ก์ ๋๋ค.
Angular์ ๋ชจ๋ ์ ์ธ์ ๋ทฐ ์ฒ ํ...โ
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ Gi tHubhttps://github.com/angular/angular.js/issues/1891#issuecomment -19644594์์ ํ์ธํ์ธ์.
.
๋ช
ํํ๊ฒ ํ๊ธฐ ์ํด ํค๋๋ฅผ ์๋ก ์ฌ์ฉํ์ต๋๋ค... ์ค์ ๋ก๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๊ฐ ์์ค์ ๋ํด ๊ตฌ์กฐ๊ฐ ๋ค๋ฅธ ๋น๊ต์ ๋ณต์กํ <div>
์ด ์์ต๋๋ค.
์ง๊ธ๊น์ง ๋ด๊ฐ ์ฐพ์ ์ ์ผํ ์๋ฃจ์
์ Javascript์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ ํํํ๊ณ ๋ค๋ฅธ ์์ค์ ๋ํด ng-switch๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด๋ฉฐ ์ถ๊ฐ div ์์ค์ด ํ์ํฉ๋๋ค.
์ด ์๋ฃจ์
์๋ ์ค๋ฒํค๋(์ฆ, ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ ํํํ๊ธฐ ์ํ ๋ฉ๋ชจ๋ฆฌ ๋ฐ CPU)๊ฐ ์์ผ๋ฉฐ HTML์ ๋ด๊ฐ ๋์ ์ฌ์ฉํ ์ ์๋ ๋ฐ์ค ํ
ํ๋ฆฟ๋ณด๋ค ํจ์ฌ ๋ ๋ช
ํํ๊ฒ ๋ณด์ผ ๊ฒ์
๋๋ค...
๊ฐ ๋ ๋ฒจ์ ๋ํ ์ง์๋ฅผ ๋ด๋ฆด ์ ์์ต๋๊น? ์ด๋ค ์ข
๋ฅ์ธ์ง ์ ๋ชจ๋ฅด๊ฒ ์ด
๋น์ ์ด ์ฌ๊ธฐ์์ ๋งํ๋ ๊ตฌ์กฐ, ๊ทธ๋์ ๋๋ ๋จ์ง ๋นจ๋๋ฅผ ์ก๊ณ ์์ ๊ฒ์
๋๋ค.
๊ทธ๋ฌ๋ ๋ด ๊ฒฝํ์ ng-switch๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ ๊ฑฐ์ ํ์ํ์ง ์์ต๋๋ค.
์ง์๋ฌธ ๋ฐ ng-include์ ๋ํ ์ก์ธ์ค ๋ฐ ์คํ๊ฒํฐ ์ฝ๋ ํ
ํ๋ฆฟ์ผ๋ก ์ด์ด์ง๋๋ค.
2013๋ 6์ 18์ผ ํ์์ผ ์คํ 4์ 27๋ถ์ Chris Cinelli [email protected]์ด ์์ฑํ์ต๋๋ค .
๋๋ ๊ทธ๊ฒ์ ๋ช ํํ๊ฒํ๊ธฐ ์ํด ํค๋๋ฅผ ์๋ก ์ฌ์ฉํ์ต๋๋ค ... ์ค์ ๋ก๋
๊ฐ ๋ ๋ฒจ์ ๋ํด ๋ค๋ฅธ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง ๋น๊ต์ ๋ณต์กํ div
๋ฐ์ดํฐ ๊ตฌ์กฐ.์ง๊ธ๊น์ง ๋ด๊ฐ ์ฐพ์ ์ ์ผํ ์๋ฃจ์ ์ ๋ค์์์ ํธ๋ฆฌ๋ฅผ ์ ํํํ๋ ๊ฒ์ ๋๋ค.
Javascript๋ฅผ ์ฌ์ฉํ๊ณ ๋ค์ํ ์์ค์ ๋ํด ng-switch๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ด ์๋ฃจ์ ์๋ ์ค๋ฒํค๋๊ฐ ์์ต๋๋ค(์: ๋ฐ์ดํฐ๋ฅผ ์ ํํํ๊ธฐ ์ํ ๋ฉ๋ชจ๋ฆฌ ๋ฐ CPU
๊ตฌ์กฐ) ๋ฐ HTML์
๋์ ์ฌ์ฉํ ์ ์๋ ๋ฐ์ค ํ ํ๋ฆฟ...โ
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ Gi tHubhttps://github.com/angular/angular.js/issues/1891#issuecomment -19650391์์ ํ์ธํ์ธ์.
.
๋ค์๊ณผ ๊ฐ์ต๋๋ค. http://d.pr/i/GSX4
๊ฑฐ์ ์งง์ ๋ ์ด๋ธ(1.xx x), ์ค๋ช
, ํ์ธ ํ์์ ์ ๋ฑ์ db์์ ๊ฐ์ ธ์ต๋๋ค.
์ด ๋ถ๋ถ์ Angular๋ก ๋ณํํ๋ ์ต์
์ ํ์ ์ค์ด์ง๋ง ์ง๊ธ๊น์ง๋ ์ฃผ์ฌ์๊ฐ ์์ต๋๋ค.
ํ์ฌ ๋ณด๊ธฐ๋ ์๋นํ ๋
ผ๋ฆฌ์ ์ด์ง ์์ผ๋ฉฐ ํ์ฌ ์งํ ์ค์ธ ์ํฉ์ ๋น๊ต์ ๋ช
ํํ๊ฒ ๋ณด์ฌ์ค๋๋ค.
๋ด๊ฐ ์ ์ดํดํ๋ค๋ฉด ์๋ฐ ์คํฌ๋ฆฝํธ์ ๋ชจ๋ ์์ค์ ๊นจ์ผํ๋ค๊ณ ์ ์ํ๋ ๊ฒ์
๋๋ค.
๋์๊ฒ ์ด๊ฒ์ ๋ ์ง์ ๋ถํ๊ณ ๋ ์์ง๋๊ณ ๋ ์ฝ๊ธฐ ์ฌ์ ๋ณด์ ๋๋ค. ์ด ํจ๋์ ํ์ํ๊ธฐ ์ํ ๋ชจ๋ ์ ๋ณด๊ฐ ์๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ๊ฐ ์ฃผ์ด์ง๋ฉด ๋ ผ๋ฆฌ๊ฐ ์์ ํ ๋ณด๊ธฐ์ ๊ด๋ จ๋๊ณ ์ด ๋ณด๊ธฐ์ ๋งค์ฐ ๊ตฌ์ฒด์ ์ผ ๋ ๋ค๋ฅธ ํ์ผ(๋ชจ๋/์ปจํธ๋กค๋ฌ)์ ์ฝ๋๋ฅผ ์ฌ์ฉํด์ผ ํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? IMHO, ์ปจํธ๋กค๋ฌ๋ ๋ค์๊ณผ ๊ฐ์์ผ ํฉ๋๋ค(ํ์ฌ ๊ตฌํ ์ค์ ๋๋ค).
๋ฌผ๋ก ๋ช ๊ฐ์ง ์ถ๊ฐ div๋ฅผ ์ถ๊ฐํ๊ณ CSS๋ฅผ ๋ณ๊ฒฝํ ์ ์์ง๋ง, ์ด๊ฒ์ด Angular์ ํจ๊ป ์๋ํ๋๋ก ํ๋ ๋ฐ ํ์ํ ๊ฒฝ์ฐ Angular๊ฐ ์ฌ๊ธฐ์์ ์์ ์ ์๋ฃํ๋ ๊ฒ์ด ์ผ๋ง๋ ํธ๋ฆฌํ๊ณ ์ฐ์ํ์ง ๋ฐฉํด๊ฐ ๋๋ค๊ณ ๋๋๋๋ค.
๋๋ KnockoutJS์์ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ ์ฐพ์๋๋ฐ, ์ด๋ html ์์ <div data-bind="foreach: ...">
๋ฟ๋ง ์๋๋ผ "์ปจํ
์ด๋ ์๋ ์ ์ด ํ๋ฆ ๊ตฌ๋ฌธ", <!-- ko foreach: ... --><!-- /ko -->
์ ๋ํ ๋ ๋ฐ์ธ๋ฉ์ด ๋ชจ๋ ๋งค์ฐ ์ ์ฉํ ์ ์์ผ๋ฉฐ ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ์ ์ข์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. Angular๋ @bowsersenior๊ฐ ์ ์ํ ๊ตฌ๋ฌธ๊ณผ ๋งค์ฐ ์ ์ฌํ ๊ตฌ๋ฌธ ์ต์
์ธํธ๋ฅผ ์ง์ํ ์ ์์ต๋๋ค.
Knockout์ "์ปจํ
์ด๋๋ฆฌ์ค" ์ต์
์ ๋ํ ์์ธํ ๋ด์ฉ์ ๋ค์์ ์ฐธ์กฐํ์ธ์.
http://knockoutjs.com/documentation/foreach-binding.html
@mg1075 ๊ฐ์ ๊ตฌ๋ฌธ์ ๊ฒฝ์ฐ +1์
๋๋ค.
KnockoutJS๋ฅผ ์ฌ์ฉํ๋ฉด dd ๋ฐ ์ค์ฒฉ ์ปฌ๋ ์
์ ๋ ์ฝ๊ฒ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
์: http://stackoverflow.com/questions/20062032/nested-table-using-ng-repeat
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์. ๋ฐฉ๊ธ ๋์ฐฉํ ์๋ฃจ์ ์ด ์์ต๋๋ค. e46100f7097d9a8f174bdb9e15d4c6098395c3f2
์ด ๋ฌธ์ ๋ฅผ ๋ซ์ต๋๋ค.