Angular.js: ๋””์ฝ”๋”ฉ๋œ URL๊ณผ ์ธ์ฝ”๋”ฉ๋˜์ง€ ์•Š์€ URL์— ๋Œ€ํ•œ $location ๋ฌธ์ œ

์— ๋งŒ๋“  2017๋…„ 07์›” 11์ผ  ยท  4์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: angular/angular.js

์ œ์ถœํ•ฉ๋‹ˆ๋‹ค...

  • [x] ๋ฒ„๊ทธ ๋ณด๊ณ ์„œ
  • [ ] ๊ธฐ๋Šฅ ์š”์ฒญ
  • [ ] ๊ธฐํƒ€(์—ฌ๊ธฐ์— ์ง€์› ์š”์ฒญ์„ ์ œ์ถœํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค(์œ„ ์ฐธ์กฐ))

ํ˜„์žฌ ํ–‰๋™:

์•ˆ๋…• ์–˜๋“ค์•„.
์•„ํฌ์ŠคํŠธ๋กœํ”ผ @gkalpak ๊ฐ€ ํฌํ•จ๋œ URL์— ๋Œ€ํ•œ $location ์„œ๋น„์Šค ์˜ค๋ฅ˜๋ฅผ ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“  PR์—์„œ ํ† ๋ก ํ•œ ํ›„ URL์˜

์ž์„ธํ•œ ๋‚ด์šฉ์€ PR์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. https://github.com/angular/angular.js/pull/16098

์˜ˆ์ƒ/์ƒˆ๋กœ์šด ๋™์ž‘:
๋””์ฝ”๋”ฉ๋˜์ง€ ์•Š๊ณ  ๋””์ฝ”๋”ฉ๋œ URL์€ $location ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ๋„ ๋ฒ„์ „: 1.x.

๋ธŒ๋ผ์šฐ์ €: ๋ชจ๋‘

๊ธฐํƒ€:

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

src/ng/browser.js ์—๋Š” ์ด ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๊ฐ€ ์žˆ๋Š” fireStateOrUrlChange ํ•จ์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

if (lastBrowserUrl === self.url() && prevLastHistoryState === cachedState) {{
๋ฐ˜ํ’ˆ;
}
์ฃผ์š” ๋ฌธ์ œ๋Š” self.url()์„ lastBrowserUrl๊ณผ ๋น„๊ตํ•˜๋Š” ๊ฒƒ ๊ฐ™์ง€๋งŒ lastBrowserUrl์€ ํ•ญ์ƒ ๋™์ผํ•œ ์ธ์ฝ”๋”ฉ/๋””์ฝ”๋”ฉ์ด ์•„๋‹Œ ๋‹ค๋ฅธ ์†Œ์Šค์—์„œ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

$location low broken expected use bug

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋ช‡ ๊ฐ€์ง€ ์ฃผ์š” ์˜์—ญ์—์„œ URL์„ ์ •๊ทœํ™”ํ•˜๊ธฐ ์œ„ํ•ด <a href> ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด ๋ฌธ์ œ๋ฅผ ๋ถ€๋ถ„์ ์œผ๋กœ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค(https://github.com/angular/angular.js/commit/e68697e2e30695f509e6c2c1e43c2c02b7af41f0, https://github.com/ angular/angular.js/commit/2f72a69ded53a122afad3ec28d91f9bd2f41eb4f). ๊ทธ๋Ÿฌ๋‚˜ ์ด ๋ฐฉ๋ฒ•์œผ๋กœ ๋ชจ๋“  ๊ฒƒ์„ ์ •๊ทœํ™”ํ•˜๋Š” ๋ธŒ๋ผ์šฐ์ €๋Š” ์—†์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ์ง„์ •์œผ๋กœ ์ˆ˜์ •ํ•˜๋ ค๋ฉด ์ •๊ทœํ™”๋ฅผ ๊ตฌํ˜„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ˆ˜๋™์œผ๋กœ ์ •๊ทœํ™”๋ฅผ ์ˆ˜ํ–‰ ํ•˜๊ธฐ ์œ„ํ•ด POC ๋ฅผ

์ด๋Ÿฌํ•œ ์ด์œ ๋กœ ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์„ "์ˆ˜์ •ํ•˜์ง€ ์•Š์„ ๊ฒƒ" ์ƒํƒœ๋กœ ๋‘˜ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ชจ๋“  4 ๋Œ“๊ธ€

๋‹น์‹ ์€ (์—์„œ ์˜๋ฏธ @gkalpak ์˜๊ฒฌ ๋“ฑ ๋ญ”๊ฐ€ ์ผ) url = urlResolve(url).href ์—์„œ $browser.url ๋˜๋Š” ๋ชจ๋“  ํ†ตํ™” ๋ณ€๊ฒฝ $browser.url(val) ์ผ๊ด€๋˜๊ฒŒ? urlResolve ์ถ”๊ฐ€ํ•˜๋ฉด ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ ๋ช‡ ๊ฐ€์ง€ ํ…Œ์ŠคํŠธ๋ฅผ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค(์ผ๋ถ€ URL์€ ์ด์ œ / ๋๋‚ฉ๋‹ˆ๋‹ค).

@jbedard , ๊ตฌํ˜„ ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ์ƒ๊ฐํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ตœ์ข… ๊ฒฐ๊ณผ๋ฅผ ์–ธ๊ธ‰ํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

@dmartres ์ด๊ฒƒ์ด 1.7.3์—์„œ๋„ ์—ฌ์ „ํžˆ ๋ฌธ์ œ์ธ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? aee7d53a6b5d3d7bc0a1124fd3df9b263777e72e(๊ณ ์ • #16592)๊ฐ€ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์„ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๊นŒ?

๋ช‡ ๊ฐ€์ง€ ์ฃผ์š” ์˜์—ญ์—์„œ URL์„ ์ •๊ทœํ™”ํ•˜๊ธฐ ์œ„ํ•ด <a href> ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด ๋ฌธ์ œ๋ฅผ ๋ถ€๋ถ„์ ์œผ๋กœ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค(https://github.com/angular/angular.js/commit/e68697e2e30695f509e6c2c1e43c2c02b7af41f0, https://github.com/ angular/angular.js/commit/2f72a69ded53a122afad3ec28d91f9bd2f41eb4f). ๊ทธ๋Ÿฌ๋‚˜ ์ด ๋ฐฉ๋ฒ•์œผ๋กœ ๋ชจ๋“  ๊ฒƒ์„ ์ •๊ทœํ™”ํ•˜๋Š” ๋ธŒ๋ผ์šฐ์ €๋Š” ์—†์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ์ง„์ •์œผ๋กœ ์ˆ˜์ •ํ•˜๋ ค๋ฉด ์ •๊ทœํ™”๋ฅผ ๊ตฌํ˜„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ˆ˜๋™์œผ๋กœ ์ •๊ทœํ™”๋ฅผ ์ˆ˜ํ–‰ ํ•˜๊ธฐ ์œ„ํ•ด POC ๋ฅผ

์ด๋Ÿฌํ•œ ์ด์œ ๋กœ ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์„ "์ˆ˜์ •ํ•˜์ง€ ์•Š์„ ๊ฒƒ" ์ƒํƒœ๋กœ ๋‘˜ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰