Ember.js: Ember 2.10.0 - ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์ค‘ willDestroyElement ํ›„ํฌ์—์„œ this.$()๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ์ •์˜๋˜์ง€ ์•Š์€ ๊ฐ’์ด ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค.

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

Ember 2.10.0์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•œ ํ›„ this.$() ๊ฐ€ ์ด์ œ undefined ๋ฐ˜ํ™˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์— this.$() willDestroyElement ๊ฐ€ ์‹คํ–‰๋  ๋•Œ ๊ตฌ์„ฑ ์š”์†Œ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๊ฐ€ ์ค‘๋‹จ๋˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ Ember 2.9.0์—์„œ ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์ด ember-twiddle ์—์„œ ์ด๋Ÿฐ ์ผ์ด ์ผ์–ด๋‚˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Bug Ember 2.10 Has Reproduction

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

@omarestrella @kamilogorek ์ด๊ฒƒ์€ 2.10.2์—์„œ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ณด๊ณ ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

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

์ด๊ฒƒ์€ ๋ฒ„๊ทธ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. ํŠนํžˆ ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ๋ฅผ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด this.$() in willDestroyElement ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฒ„๊ทธ ํ๋ฆ„:

  1. Renderer ๋Š” _transitionTo('destroying') ํ•จ์ˆ˜ ํ˜ธ์ถœ ๋งํฌ ๊ฐ€ ํฌํ•จ๋œ _transitionTo('destroying') remove ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœ ํ•ฉ๋‹ˆ๋‹ค.
  2. _transitionTo currentState ๋ฅผ destroying ๋งํฌ๋กœ ๋ณ€๊ฒฝ
  3. _states ์กฐํšŒ๋Š” destroying ์ƒํƒœ ๋งํฌ๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค.
  4. default state link1 link2๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ์„ฑ๋จ
  5. ๋ฐ˜๋ฉด์— $() ํ˜ธ์ถœ ๋งํฌ์— ๋Œ€ํ•ด $() undefined ๋ฅผ ๋ฐ˜ํ™˜ ํ•ฉ๋‹ˆ๋‹ค.

@omarestrella @kamilogorek ์ด๊ฒƒ์€ 2.10.2์—์„œ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ณด๊ณ ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

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