๋ชจ๋ ์คํ ๋ธ๋ก์์ ๋ช ๊ฐ์ง $http ํธ์ถ์ ์คํํ๋ ค๊ณ ํฉ๋๋ค. ์ด์์ ์ผ๋ก๋ ์คํ์ด $http ๋ฐ ์ฒ๋ฆฌ๊ฐ ์๋ฃ๋ ํ์๋ง ์๋ฃ๋์ด์ผ dom ์ปดํ์ผ์ด ๋ฐ์ํฉ๋๋ค.
์ด๊ฒ์ ์ฝ์ง ์์ง๋ง ์ดํด๋ด์ผ ํฉ๋๋ค.
Jasmine์ด ์ด๋ฅผ ์ํํ๋ ๋ฐฉ๋ฒ์ ํ๋๊ทธ๋ฅผ ์ค์ ํ๋ ๊ฒ์
๋๋ค. ๊ทธ๋ฌ๋ฉด ํจ์๊ฐ ์คํ๋๊ณ ํ๋๊ทธ๊ฐ true
๋ก ์ค์ ๋๊ฑฐ๋ ์๊ฐ ์ด๊ณผ๊ฐ ๋ฐ์ํ ๋๊น์ง ์ฝ๋ฐฑ์ ๊ธฐ๋ค๋ฆฝ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
var flag = false;
$http(...).success(flag = true);
$timeout(function () {
flag = true;
// Or add some error handling stuff here
}, 5000);
while (!flag) {};
์๋ฆ๋ต์ง๋ ์์ง๋ง ์ผ์ ํด์ผ ํฉ๋๋ค. ์์ ์ฝ๋๋ ํ ์คํธ๋์ง ์์์ผ๋ฏ๋ก ์ฝ๊ฐ ์์ ํด์ผ ํ ์๋ ์์ต๋๋ค. ์๊ฐ์ด ๋ฆ์ด์ง๊ณ ์์ต๋๋ค. ์กฐ๊ธ ๋ ์์ ๋ฌด์ธ๊ฐ๊ฐ ์ฌ ๋๊น์ง ๋ญ๊ฐ๋ฅผ ์ป์ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
+1
๊ทธ๋ฌ๋ ์ ์ ํ ๊ฐ๋ ์ง์๋ฌธ์ ์ฌ์ฉํ์ฌ ๋ฉ์ง ๋ก๋ฉ ํ๋ฉด์ ๊ทธ๋ฆด ์ ์๊ฒ ๋ฉ๋๋ค...
+1
$routeProvider
with resolve
ํด๊ฒฐ๋์ง ์์ต๋๊น? ์ ๊ฐ ๋ฌธ์ ๋ฅผ ์ดํดํ์ง ๋ชปํ์ ์๋...
์ด๊ฒ์ ๋น๋๊ธฐ ๋ชจ๋ ์ด๊ธฐํ ์ง์์ ์ํ ๊ฒ์ ๋๋ค. ์ฆ, ํ์ฌ ํ๋ก์ ํธ์์ ๋ ์ด์ ํ์ํ์ง ์์ต๋๋ค.
@shahata $routeprovider
๊ฐ ์ด ์์
์ ์ํํ์ง๋ง run
s์ ๋ชจ๋ ์ฌ์ฉ ์ฌ๋ก๊ฐ ๊ฒฝ๋ก๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์๋๋๋ค. ๋ด ์ฌ์ฉ ์ฌ๋ก์์๋ ์ง์๋ฌธ์ ๋ํํ๊ณ ๊ฒฝ๋ก์ ์๋ฌด ๊ด๋ จ์ด ์๋ ๋ชจ๋์ ์ํ ๊ฒ์
๋๋ค.
+1
์คํ ํจ์๊ฐ ์ฝ์์ ๋ฐํํ๋์ง ํ์ธํ ๋ค์ ํด๊ฒฐ๋ ๋๋ง ์งํํฉ๋๋ค. runBlocks
๋ ํจ์์ ๋ฐฐ์ด์ด๋ฏ๋ก ์ ํ ์ด๋ ต์ง ์์ต๋๋ค.
+1
+1 ๋ฌด์๋นํด์ ๋นํฉ
์ด๊ฒ์ด ์ธ์ ์ฐฉ๋ฅํ ๊ฒ์ธ์ง ์ ์ ์์ต๋๊น? ๋ผ์ฐํฐ์์ ํด๊ฒฐํ๊ธฐ ์ํด ์ด๊ธฐํ ํญ๋ชฉ์ ์ด๋ํด์ผ ํ๋ ๊ฒ์ ๋งค์ฐ ๋ต๋ตํฉ๋๋ค. ์ฃผ๋ก ์ด๊ธฐํ ์ฝ๋๊ฐ URL์ ๊ตฌ์ ๋ฐ์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ค(์ฌ์ฉ์๊ฐ SPA์ ๋์ฐฉํ๋ ๋ชจ๋ ์ ํ์ URL์ ๋ํด ์ด๊ธฐํํด์ผ ํจ).
๋๋ Angular๊ฐ ์์ผ๋ก ์ด๋ค ๊ฐ์ ์ฌํญ๋ ๋ฐ์ง ์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ค์ ๋ชจ๋ Angular 2.0์ ์ถ๊ฐ๋๊ณ ์์ต๋๋ค.
๋ฐ์ฏค ์ฌ์ฉ๋ run
๋ฉ์๋๊ฐ ์ผ๋ง๋ ์ค๋ ๋๊ธฐ์์ผ๋ก ์ ์ง๋ฉ๋๊น? $http
ํธ์ถ์ ์ํํ๋ ๊ณต๊ธ์๊ฐ ์์ง๋ง run
๋ ์ง์ํ๋ฏ๋ก config
๊ฐ ๋น๋๊ธฐ ํธ์ถ์ ์ง์ํ์ง ์๋ ๊ฒ์ ๊ด์ฐฎ๊ณ ์ดํดํ ์ ์์ต๋๋ค. ์ด ๊ธฐ๋ฅ์ ๋ถ์กฑ(์ฒ์๋ถํฐ ์กด์ฌํ์ด์ผ ํจ)์ด ์ผ์ผํค๋ ํดํน ์ ํ์ ์ดํด๋ณด์ธ์.
https://github.com/philippd/angular-deferred-bootstrap/blob/master/src/deferred-bootstrap.js
๋ถ๋๋ฝ๋ค
+1
@btford ๋ ์ด์ ๊ด๋ จ๋ ์ฌ์ฉ ์ฌ๋ก๊ฐ ๋ด๋ถ ์คํ ๋ธ๋ก์ด ์๋ ์ ๋ผ์ฐํฐ๋ฅผ ํตํด ์ด๋ป๊ฒ ์ง์๋ ์ ์๋์ง ์ดํด๋ณด๊ณ ์์ต๋๋ค.
+1
+1
+1
+1
์ฐ๋ฆฌ๊ฐ ๊ฐ์ง ์ฃผ์ ๋ฌธ์ ๋ runBlocks๊ฐ ์คํ๋ ๋ ๋ก๋๋๋ ๋ชจ๋ ๋ด๋ถ์ $q
๊ฐ ์์ฑ๋๋ค๋ ๊ฒ์
๋๋ค. ์ด๊ฒ์ ์ฐ๋ฆฌ๊ฐ ์ด๋ป๊ฒ๋ ์๋น์ค(๋๋ ์๋ง๋ ๋ชจ๋)์ "์ผ๋ถ"๋ฅผ ์ถ์ถํ๊ณ ๊ทธ๊ฒ๋ค์ ๋จผ์ ์์ฑํ ๋ค์ $q๊ฐ ์๋ฃ๋ ํ ๋๋จธ์ง ๋ชจ๋(๋ฐ ์๋น์ค, ์คํ ๋ธ๋ก ๋ฑ)์ ๋ก๋ํ๋ ๋ ๋ฒ์งธ ํจ์ค๊ฐ ์์ด์ผ ํจ์ ์๋ฏธํฉ๋๋ค. ์์ฑ๋์์ต๋๋ค.
@lgalfaso - ์ด๋ฒ ์ฃผ ํ๋ฐ(๋๋ ๋ค์ ์ฃผ) $injector
์์
์ ์ผ๋ถ๋ก ์ด๊ฒ์ ์ข ๋ ์ดํด๋ณด์ค ์ ์์๊น์?
๋๋ ๊ทธ๊ฒ์ด ๋จ์ง ํด๊ฒฐ ๋ฐฉ๋ฒ์ด๋ผ๋ ๊ฒ์ ์๊ณ ์์ง๋ง ์ผ๋ฐ์ ์ผ๋ก ๊ฐ๋ ui ๋ผ์ฐํฐ๋ฅผ ์ฌ์ฉํ๊ณ ํด๊ฒฐ๊ณผ ํจ๊ป ๋ฃจํธ ์ถ์ ์ํ๋ฅผ ์ฌ์ฉํ์ฌ ์ผ๋ถ ๋น๋๊ธฐ ๋ถํธ์คํธ๋ฉ ๋ ผ๋ฆฌ๋ฅผ ๊ฐ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค. ๋ฃจํธ ์ถ์ ์ํ๋ ํญ์ ๋จผ์ ํด๊ฒฐ๋์ด์ผ ํ๋ฏ๋ก ์ค์ ์ ๋ก๋ํ๊ณ ๋ก๋ ์ ๋๋ฉ์ด์ ์ ํ์ํ๋ ๋ฑ์ ์์ ์ ์ ํฉํฉ๋๋ค.
์ด๊ฒ์ ์ ๋ง ์ข์ ๊ฒ์
๋๋ค.
:+1:
์ด ์์ ์ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ต๋๋ค. 1.4์ ๋์์ผ๋ฉด ์ข๊ฒ ๋ค
+1
๋ค๋ฅธ ์ฌ์ฉ ์ฌ๋ก๊ฐ ์์ต๋๋ค. ์์ ์ $http ํธ์ถ๋ก ์๋ฎฌ๋ ์ด์ ๋ ๋์ ์ ์ด๊ธฐํํด์ผ ํฉ๋๋ค(์ผ๋ถ ๋ฐ์ดํฐ๋ฅผ ์บ์ํ๊ธฐ ์ํด)...
+1
+1
์ด๊ฒ๋ ๊ทธ๋ฅ ๋์ด๊ฐ๋ค...
@petebacondarwin ๋ค๋ฅธ ๋ชจ๋ ๋ชจ๋์ ๊ณ์ ๋ก๋ํด๋ ๊ด์ฐฎ๋ค๊ณ ์๊ฐํ์ง๋ง ์ด๊ธฐ ํ์ ์์์ ์ฐ๊ธฐํฉ๋๋ค.
๋๋ $routeProvider๋ ์ด๊ธฐ ๊ฒฝ๋ก ๋ ๋๋ง์ ์ฐ๊ธฐํด์ผ โโํ๋ ๊ตฌ์ฑ ๊ฐ๋ฅํ ๊ธฐ๋ฅ ๋งค๊ฐ๋ณ์๋ฅผ ์ ๊ณตํ ์ ์์ต๋๋ค.
+1
+1
๊ฐ๋ฅํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. http://plnkr.co/edit/vi7mDjmD4NpZAoP7MVzr?p=preview
์์ด๋์ด๋ Angular๊ฐ ์ค์ ๋ก ๋ชจ๋ ์ธํธ์์ ์์ ์ ์ธ์ ํฐ๋ฅผ ์์ฑํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค๋ ๊ฒ์
๋๋ค. ์ด ๊ฒฝ์ฐ ๋ง์ ์ฝ์( resolves
)์ด ํด๊ฒฐ๋ ๋๊น์ง $rootElement
์ปดํ์ผ์ ์ง์ฐํ์ต๋๋ค. ์ด๊ฒ์ POC์ด๋ฉฐ ์ด ํ๋ก๋์
์ ์ค๋นํ๋ ๋ฐ ํ์ํ ๋ง์ ๋ค๋ฅธ ์ข
์๋ฆฌ์ ํํ๋์ด ์์ ๊ฒ์
๋๋ค. ๋ค๋ฅธ ๊ฒ ์ธ์๋ ํด๊ฒฐ์์ ์ค๋ฅ๋ฅผ ์ผํค๋ ๊ฒ์ด ์๋๋ผ ์ก์์ผ ํฉ๋๋ค.
+1
์ด๊ฒ์ ๋๋ถ๋ถ ์๋ํด ๋ณด๊ณ ์ถ์ ์ฌ๋์ ์ํ ๊ฐ์ด๋์ ๋๋ค. ํ์ฌ ๋ถํธ์คํธ๋ฉ ํ๋ก์ธ์ค๋ ๋ค์์ ์ํํฉ๋๋ค.
$rootElement
๋ํด ์์ฐ๋ ๊ฒ์ ๋ง๋ญ๋๋ค.$rootElement
์ปดํ์ผ ๋ฐ ๋งํฌ๋งจ ์์ ์ธ์ ํฐ๋ฅผ ๋ง๋ค ๋ ๋จ๊ณ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
run
ํจ์ ์์งrun
๊ธฐ๋ฅ ์คํ๋ช ๊ฐ์ง ํต์ฌ ์ฌํญ์ด ์์ต๋๋ค.
run
๋ธ๋ก์ $rootElement
๊ฐ ์ปดํ์ผ๋๊ธฐ ์ ์ ์คํ๋ฉ๋๋ค.$rootElement
์ ์ด๊ธฐ ์ปดํ์ผ ์ค์
๋๋ค.$q
๋ ๋ค์ด์ ์คํธ ์ฃผ๊ธฐ _only_ ๋์ ์ฝ์์ ํ์ธํฉ๋๋ค.์ด๊ฒ์:
run
ํจ์๊ฐ ์๋ ๋ชจ๋์ด ์๊ณ ์ฑ์ด ์์๋๊ธฐ ์ ์ ํ๋ผ๋ฏธ์ค๋ฅผ ํด๊ฒฐํด์ผ ํ๋ ๊ฒฝ์ฐ ์ด๊ธฐ ์ปดํ์ผ ์ ์ ๋ค์ด์ ์คํธ ์ฃผ๊ธฐ๊ฐ ์์ต๋๋ค(์ด๋ก ์ธํด ๊ธฐ์กด ์ฑ์ด ์ค๋จ๋ ์ ์์)config
ํจ์๊ฐ ์ธ์คํด์ค๊ฐ ์๋ ๊ณต๊ธ์์ ํจ๊ป ์ฃผ์
๋๋ฏ๋ก ๊ตฌ์ฑ ๋ธ๋ก์ ์ฝ์์ ๋ฐํํ ์ ์์ต๋๋ค.์๋ฃจ์ ์ด ๋ฌด์์ด๋ ์ด๋ฌํ ๊ฒฝ์ฐ๋ฅผ ์ฒ๋ฆฌํด์ผ ํฉ๋๋ค.
+1
์ด๋ค ๋ด์ค?
์ฑ์ด ์ค์ ๋ก ์์๋๊ธฐ ์ ์ ์ผ๋ถ ๊ตฌ์ฑ ์ค์ ์ ๋ก๋ํ๊ณ ์ถ์ต๋๋ค.
+1
๋ชจ๋ ๊ณต์ฅ์ด ๊ฐ๋๋๊ณ ์ปดํ์ผ๋๊ธฐ ์ ์ ๋ถํธ์คํธ๋ฉ ํ์ ์ผ๋ถ ๋น๋๊ธฐ ๋ฐ์ดํฐ๋ฅผ ๋ก๋ํฉ๋๋ค.
@dagingaa : ํด๊ฒฐ ๋ฐฉ๋ฒ์ผ๋ก ๊ทํ์ ์๋ฃจ์ ์ ์ ํํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค! ๊ฐ์ฌ ํด์
@dagingaa ์ ๋ฐ์ดํธ: for ๋ฃจํ๊ฐ ๋ด ๋ธ๋ผ์ฐ์ ๋ฅผ ์ ์ง
https://jsfiddle.net/tuxmachine/t4d63vnw/
์ด๊ฒ์ด ๋๋จธ์ง ์ฑ์ ์ด๊ธฐํํ๊ธฐ ์ ์ ์ด๊ธฐ ajax ํธ์ถ์ ํด๊ฒฐํด์ผ ํ๋ OAuth ํ ํฐ ๊ตฌํ์ ์ํด ํด๊ฒฐํ ๋ฐฉ๋ฒ์ ๋๋ค.
์ฌ๋ฌ ๊ฐ์ ๋น๋๊ธฐ ์คํ ๋ธ๋ก์ด ์์ผ๋ฉด ์๋ํ์ง ์์ต๋๋ค.
+1
+1
+1
๋ฌธ์ ๊ฐ ๋ฐ์ํ์ง 2๋ ์ด ์ง๋ฌ์ง๋ง ์ฌ์ ํ ์ข์ ํด๊ฒฐ์ฑ ์ด ์์ต๋๋ค.
@vladmiller ์๋ฃจ์ ์ด ์์ง๋ง ์๋ง๋ ๊ทธ๋ค์ด ์ข๋ค๊ณ ๋๋ผ์ง ์์ ์ ์์ต๋๋ค.
$onActivate
๊ฐ ์๋ ์ ๊ตฌ์ฑ ์์ ๋ผ์ฐํฐ ์ฌ์ฉ์ค์ํ์ง ์์ ์ ํ๋ฆฌ์ผ์ด์
์์
์ .run
๋ธ๋ก ์์ ๋ฃ์ผ๋ฉด ์ฝ๋๋ฅผ ๋จ์ ํ
์คํธํ๊ธฐ๊ฐ ์ด๋ ต์ต๋๋ค. ๊ทธ๋์ ์ฐ๋ฆฌ๊ฐ ๊ฒฉ๋ คํ๊ณ ์ถ์ ๊ฒ์ด ์๋๋๋ค. ์ฐ๋ฆฌ๊ฐ ๊ตฌํํ ๊ฐ๋ฅ์ฑ์ด ์๋ ๊ฒ์ผ๋ก ์ด๊ฒ์ Ice Box๋ก ์ฎ๊ธฐ๋ ๊ฒ์
๋๋ค.
@petebacondarwin ๋๋ ๋น์ ์๊ฒ ๋์ํ์ง ์์ต๋๋ค. ๋ชจ๋ ์ฌ๋๋ค์ Angluar๊ฐ ๊ฐ๋จํ๊ณ ์ง๊ด์ ์ผ ๊ฒ์ผ๋ก ๊ธฐ๋ํฉ๋๋ค. ๋์ ์์ ์ ๋น๋๊ธฐ ๋ถํธ์คํธ๋ฉ ๋ชจ๋์ด๋ ๋ถํธ์คํธ๋ฉ ๋ชจ๋์ ๋ค๋ฅธ ์์น์ ๊ตฌํํด์ผ ํฉ๋๋ค. ์ ์๊ฐ์๋ ์ด๊ฒ์ด ๊ฐ๋๋ฅผ ๋ ๋ณต์กํ๊ฒ ๋ง๋ญ๋๋ค.
๋ํ .run
๋น๋๊ธฐ ์ฝ๋๊ฐ ํ
์คํธ๋ฅผ ๋ ์ด๋ ต๊ฒ ๋ง๋ ๋ค๋ ๊ฒ์ด ๋ฌด์จ ๋ป์ธ์ง ์ค๋ช
ํด ์ฃผ์๊ฒ ์ต๋๊น?
์ด์ ์ ๋ฌด๋กํ ๋๊ธ์ ๋ํด ์ฌ๊ณผ๋๋ฆฝ๋๋ค.
๊ฐ์ฌ ํด์
@petebacondarwin ํ
์คํธ๋ฅผ ์ด๋ ต๊ฒ ๋ง๋๋ ๋ฐฉ๋ฒ์ .run
๋ธ๋ก ๋ด์์ ์คํ๋๋์ง ์ฌ๋ถ์ ๊ด๊ณ์์ด http ๋ฐฑ์๋ ๋ชจ์์์ ๊ธฐ๋ํ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ณ /๋ชจ์/๋น๊ตํ ์ ์์ต๋๋ค. ๋น๋๊ธฐ ์คํ ๋ถ์กฑ์ ๋ํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ผ๋ก ์ธํด ์ฝ๋๊ฐ ๊ฐ๋ ์ธ๋ถ์ ์กด์ฌํ๋ฉด ํ
์คํธ๊ฐ ๊ฑฐ์ ๋ถ๊ฐ๋ฅํฉ๋๋ค.
์ด๋ป๊ฒ ์ง๋ด์?
๋ค๋ฅธ ์ ๊ทผ ๋ฐฉ์: http://plnkr.co/edit/8XGSNOzzRGvgNSSnXx3M?p=preview
@petebacondarwin ์๋ฃจ์ ์ด ์ ์๊ฒ
ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์๊ณ ์ง์ํ๋ ๋น๋๊ธฐ ์คํ ๋ธ๋ก์ ๋ถํธ์คํธ๋ฉ์ ๋ณต์ก์ฑ์ ์ถ๊ฐํ๋ฏ๋ก ์ด ๊ธฐ๋ฅ์ ๊ตฌํํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค.
๊ธฐ๋ฅ์ ๊ฐ๋จํ์ง๋ง ๊ตฌํํ๊ธฐ๊ฐ ๋๋ฌด ์ด๋ ต์ต๋๋ค. ๐
์ด ๊ธฐ๋ฅ์ ๋ํด +1
+1
+1
@petebacondarwin ์๋ฃจ์ ์ด ์ ์๋ํฉ๋๋ค.
+1. :(
+1
+1
+1
+1
์ฐ๋ฆฌ๋ ์ด๊ฒ์ ํ์ง ์์ ๊ฒ์ ๋๋ค.
+100, ๋ชจ๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋์ฐํฉ๋๋ค.
@Eduardo-Julio - AngularJS ์ ํ๋ฆฌ์ผ์ด์
์ ๋ถํธ์คํธ๋ฉ์ ํจ์ฌ ๋ ๋ณต์กํ๊ฒ ๋ง๋ค๊ธฐ ๋๋ฌธ์ ์ด ๊ธฐ๋ฅ์ ๊ตฌํํ์ง ์์ ๊ฒ์
๋๋ค. +
๋ ์ถ๊ฐํด๋ ๋์์ด ๋์ง ์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๊ธฐ๋ฅ์ ๊ฐ๋จํ์ง๋ง ๊ตฌํํ๊ธฐ๊ฐ ๋๋ฌด ์ด๋ ต์ต๋๋ค. ๐