Ember.js: ๋™์  ์„ธ๊ทธ๋จผํŠธ๊ฐ€ ์žˆ๋Š” ๋ผ์šฐํ„ฐ `transition.retry` ๋ฐ `refreshModel` queryParams๋กœ ์ธํ•ด ์˜ˆ๊ธฐ์น˜ ์•Š์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•จ

์— ๋งŒ๋“  2018๋…„ 09์›” 19์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: emberjs/ember.js

#10945์™€ ๊ด€๋ จ์ด ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋‚ด ์‚ฌ์šฉ ์‚ฌ๋ก€๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋งŒ๋ฃŒ๋œ ํ† ํฐ์œผ๋กœ ํƒ์ƒ‰์„ ์‹œ๋„ํ•  ๋•Œ(์ฐฝ์„ ์ถฉ๋ถ„ํžˆ ์˜ค๋ž˜ ์—ด์–ด ๋‘ ์œผ๋กœ์จ) API ํ˜ธ์ถœ์ด ์Šน์ธ๋˜์ง€ ์•Š์€ ์˜ค๋ฅ˜์™€ ํ•จ๊ป˜ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์œ ํ˜•์˜ ์˜ค๋ฅ˜๋ฅผ ํฌ์ฐฉํ•˜๊ณ  ์‚ฌ์šฉ์ž๋ฅผ ์žฌ์ธ์ฆํ•˜๊ณ  ์ธ์ฆ ํ›„ ์ „ํ™˜์„ ์žฌ์‹œ๋„ํ•˜๊ธฐ ์œ„ํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์˜ค๋ฅ˜ ์ž‘์—…์— ๋ช‡ ๊ฐ€์ง€ ๋…ผ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๋Š” ๋‚ด๊ฐ€ํ•˜๋ ค๊ณ  ํ•  ๋•Œ์ด๋‹ค transition.retry() ๋™์  ์„ธ๊ทธ๋จผํŠธ์™€์™€ ์ฟผ๋ฆฌ ๋งค๊ฐœ ๋ณ€์ˆ˜์™€ ๊ฒฝ๋กœ์— refreshModel , ๊ทธ๊ฒƒ์€ ์˜ค๋ฅ˜ ์•„๋ž˜์— ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค :

You didn't provide enough string/numeric parameters to satisfy all of the dynamic segments for route [route name]

์ฟผ๋ฆฌ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ refreshModel: false ํ•˜๋ฉด ์ œ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์žฌํ˜„ ๊ฐ€๋Šฅํ•œ ํšŒ์ „์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. https://ember-twiddle.com/e25fc434b6e1c1627e553b8120203655?openFiles=routes.dynamic-segment.js%2C
'์ฟผ๋ฆฌ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์žˆ๋Š” ๋™์  ์„ธ๊ทธ๋จผํŠธ' ๋งํฌ๋ฅผ ํด๋ฆญํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. /routes/dynamic-segment.js์—์„œ refreshModel ๋ฅผ false ๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๋„์›€์„ ์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌ ํ•ด์š”!

Has Reproduction Router Bugs

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

@krukid - ๊ท€ํ•˜๊ฐ€ ์–ธ๊ธ‰ํ•œ ๋ฌธ์ œ๋Š” ์—ฌ๊ธฐ์—์„œ ๋…ผ์˜๋˜๋Š” ์›๋ž˜ ๋ฌธ์ œ์™€ ๋‹ค์†Œ ๊ด€๋ จ์ด ์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค(์ œ ์ƒ๊ฐ์—๋Š”). ์ƒˆ๋กœ์šด ๋ฌธ์ œ๋ฅผ ์ œ๊ธฐํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

@rreckonerr๋Š” ์ตœ๊ทผ ์•ฝ๊ฐ„ ๊ด€๋ จ๋œ ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ–ˆ๋Š”๋ฐ(์ค‘๊ฐ„ ์ „ํ™˜์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ์›๋ž˜ ๊ฐ’์„ ํ†ตํ•ด ์Šค๋ ˆ๋“œํ•˜์ง€ ์•Š์Œ) ์ด๊ฒƒ์€ ๋‹ค์†Œ ๊ด€๋ จ์ด ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„๋Š” router.js์—์„œ ์‹คํŒจํ•œ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค...

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

queryParamsOnly: true Route.refresh() ์— ์˜ํ•ด ํŠธ๋ฆฌ๊ฑฐ๋œ ์ „ํ™˜์„ transition.retry() ํ•˜๋ ค๊ณ  ํ•  ๋•Œ ๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด๊ฒƒ์ด #16921๊ณผ ์–ด๋–ป๊ฒŒ๋“  ๊ด€๋ จ์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

Route#refresh() ๋Š” ๋™์  ์„ธ๊ทธ๋จผํŠธ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์žฌ์‹œ๋„ํ•  ์ˆ˜ ์—†๋Š” ์ „ํ™˜์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

๋‚ด ์‚ฌ์šฉ ์‚ฌ๋ก€๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. https://ember-twiddle.com/6d2f981f6628a3260db8cafd3b3aac0a?openFiles=routes.flopping-route%5C.js%2C

@krukid - ๊ท€ํ•˜๊ฐ€ ์–ธ๊ธ‰ํ•œ ๋ฌธ์ œ๋Š” ์—ฌ๊ธฐ์—์„œ ๋…ผ์˜๋˜๋Š” ์›๋ž˜ ๋ฌธ์ œ์™€ ๋‹ค์†Œ ๊ด€๋ จ์ด ์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค(์ œ ์ƒ๊ฐ์—๋Š”). ์ƒˆ๋กœ์šด ๋ฌธ์ œ๋ฅผ ์ œ๊ธฐํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

@rreckonerr๋Š” ์ตœ๊ทผ ์•ฝ๊ฐ„ ๊ด€๋ จ๋œ ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ–ˆ๋Š”๋ฐ(์ค‘๊ฐ„ ์ „ํ™˜์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ์›๋ž˜ ๊ฐ’์„ ํ†ตํ•ด ์Šค๋ ˆ๋“œํ•˜์ง€ ์•Š์Œ) ์ด๊ฒƒ์€ ๋‹ค์†Œ ๊ด€๋ จ์ด ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„๋Š” router.js์—์„œ ์‹คํŒจํ•œ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค...

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