์ด๊ฒ์ด ์๋์ ์ธ ํ๋์ธ์ง ํ์คํ์ง ์์ง๋ง ์ค๋ช ํ๊ฒ ์ต๋๋ค. ๋์ ์ธ๊ทธ๋จผํธ๊ฐ ์๋ ๊ฒฝ๋ก์์ transitionTo๋ฅผ ์ฌ์ฉํ๋ฉด ๋์ ๊ฒฝ๋ก์ ๋ชจ๋ธ ๋ฉ์๋๊ฐ ํธ์ถ๋์ง ์์ต๋๋ค. ๋ณธ์ง์ ์ผ๋ก ์ ๋ id๊ฐ ์๋ ๋งค๊ฐ๋ณ์๋ฅผ ํต๊ณผํ๊ณ ์์ผ๋ฉฐ ์ฌ์ ํ ์ฌ๋ฐ๋ฅธ ๋ชจ๋ธ์ ๋ก๋ํ๊ณ ์ถ์ต๋๋ค.
๋ชจ๋ธ์ด ์ ๋๋ก ๋ก๋๋์ง๋ง ์ฌ๋ฐ๋ฅธ URL๋ก ํ์ด์ง๋ฅผ ์๋ก ๊ณ ์น๋ฉด. ์์ฐํ๊ธฐ ์ํด ์ฝ๋ํ์ ๊ตฌ์ฑํ์ต๋๋ค.
http://codepen.io/anon/pen/LsfhB
ํ์ฌ ๋ฒ์ ์ "I'm here" ์ฝ์์์ ๋ก๊ทธ์์ํฉ๋๋ค. IndexRoute๋ฅผ ๋ณด๋ฉด ์ฃผ์ ์ฒ๋ฆฌ๋ ์ ํ์ด ์์ต๋๋ค. ๊ทธ๊ฒ์ด ํ์ฑํ๋๋ฉด "I'm here"๊ฐ ํธ๋ฆฌ๊ฑฐ๋์ง ์์ต๋๋ค.
์์๋๋ ์ผ์ ๋๊น? ๊ทธ๋ ๋ค๋ฉด ํ์ธ ๊ฒฝ๋ก๋ฅผ ์ํด ๋ด ๋ชจ๋ธ์ ์ด๋์ ๋ก๋ํด์ผ ํฉ๋๊น?
์ ํ์ this.transitionTo('confirm', 1);
๋ก ๋ณ๊ฒฝํ๋ฉด ์์ํ ๋๋ก ์๋ํฉ๋๋ค.
IIRC ์ ์ฒด ๋ชจ๋ธ ๋์ ์ ํ์ ํ๋ฆฌ๋ฏธํฐ๋ธ(๋ฌธ์์ด, ์ซ์)๋ฅผ ์ ๋ฌํ๋ ๊ฒฝ์ฐ ํด๋น ID๋ฅผ ํ์
ํ๊ณ ์ด๋ฅผ ์ฌ์ฉํ์ฌ model
ํธ์ถ์ ๋ํ ๋งค๊ฐ๋ณ์๋ฅผ ๋น๋ํ์ง๋ง ๋ณต์กํ ๊ฒ์ ์ ๋ฌํ๋ ๊ฒฝ์ฐ(in ์ด ๊ฒฝ์ฐ ๊ฐ์ฒด) ๊ทธ๋ฌ๋ฉด ๋ชจ๋ธ์ ์ ๋ฌํ ๊ฒ์ผ๋ก ์ฒ๋ฆฌํ๋ฏ๋ก ๋ชจ๋ธ ํํฌ๋ฅผ ํธ์ถํ์ง ์์ต๋๋ค.
API ๋ฌธ์๋ ์ ์ฒด ๋ชจ๋ธ ๋์ ID๋ฅผ ์ ๋ฌํ๋ ์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. http://emberjs.com/api/classes/Ember.Route.html#method_transitionTo
๊ทธ๊ฒ์ด ์๋ฏธ๊ฐ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
์ด์ ์ดํด๊ฐ ๋ฉ๋๋ค. ๊ทํ์ ์๊ฒฌ์ ๋ํ ๋์ ์ฒซ ์ง๊ฐ ์ง๋ฌธ์ ์ฌ๋ฌ ๋งค๊ฐ๋ณ์๋ฅผ ์ด๋ป๊ฒ ์ ๋ฌํฉ๋๊น? ๊ทธ๋ฌ๋ ๋ณ๋์ ์ธ์๋ก ์ ๋ฌํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค.
this.transitionTo('confirm.url', 1, 'the-slug-I-want');
๊ทธ๊ฒ์ ๋๋ฅผ ์ํด ์ ์๋ํฉ๋๋ค.
์ฌ๊ธฐ์ ์ง๋ฌธ์ด ์์ต๋๋ค. ๋ชจ๋ ํ์ ๊ฒฝ๋ก๊ฐ ๋์ ์ธ๊ทธ๋จผํธ๊ฐ ์๋ ๊ฒฝ๋ก๊ฐ ์๋ ๊ฒฝ์ฐ:
์
this.route('์กฐ์ง', { ๊ฒฝ๋ก: '์กฐ์ง/:์กฐ์ง_id' }, function() {
this.route('project', { ๊ฒฝ๋ก: 'projects/:project_id' }, function() {
this.route('์คํฌ๋ฆฐ', { ๊ฒฝ๋ก: '์คํฌ๋ฆฐ/:์คํฌ๋ฆฐ ID' });
});
๊ทธ๋ฆฌ๊ณ ์ ๋ ๋ค๋ฅธ ๊ฒฝ๋ก(์: ์ธ์ฆ ๊ฒฝ๋ก)์ ์์ต๋๋ค. this.transitionTo('organization.project.screen',
{์กฐ์ง ID: 'grege23-234-4c3e-96fe-234423' },
{ํ๋ก์ ํธ ์์ด๋: '234234-23423-4b99-a492-234'},
{ํ๋ฉด ์์ด๋: '34534-48f4-471d-ad17-3'45});
๋ชจ๋ธ์ด ๋ก๋๋์ง ์์๊ธฐ ๋๋ฌธ์ ์๋ฌด๊ฒ๋ ํ์๋์ง ์์ต๋๋ค.
๋น์ ์ ์ด๊ฒ์ ์ํด ์ด๋ป๊ฒ ๊ฐ ์ ์์์ต๋๊น?
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ ํ์
this.transitionTo('confirm', 1);
๋ก ๋ณ๊ฒฝํ๋ฉด ์์ํ ๋๋ก ์๋ํฉ๋๋ค.IIRC ์ ์ฒด ๋ชจ๋ธ ๋์ ์ ํ์ ํ๋ฆฌ๋ฏธํฐ๋ธ(๋ฌธ์์ด, ์ซ์)๋ฅผ ์ ๋ฌํ๋ ๊ฒฝ์ฐ ํด๋น ID๋ฅผ ํ์ ํ๊ณ ์ด๋ฅผ ์ฌ์ฉํ์ฌ
model
ํธ์ถ์ ๋ํ ๋งค๊ฐ๋ณ์๋ฅผ ๋น๋ํ์ง๋ง ๋ณต์กํ ๊ฒ์ ์ ๋ฌํ๋ ๊ฒฝ์ฐ(in ์ด ๊ฒฝ์ฐ ๊ฐ์ฒด) ๊ทธ๋ฌ๋ฉด ๋ชจ๋ธ์ ์ ๋ฌํ ๊ฒ์ผ๋ก ์ฒ๋ฆฌํ๋ฏ๋ก ๋ชจ๋ธ ํํฌ๋ฅผ ํธ์ถํ์ง ์์ต๋๋ค.API ๋ฌธ์๋ ์ ์ฒด ๋ชจ๋ธ ๋์ ID๋ฅผ ์ ๋ฌํ๋ ์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. http://emberjs.com/api/classes/Ember.Route.html#method_transitionTo
๊ทธ๊ฒ์ด ์๋ฏธ๊ฐ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.