DtQuickFilter ๊ตฌ์ฑ ์์๋ฅผ ์ฌ์ฉํ๊ณ ํํฐ ๋ฐฐ์ด์ [filters] ์ ๋ ฅ์ ์ ๋ฌํ ๋ ๊ตฌ์ฑ ์์๋ DtFilterField์ฒ๋ผ ํ์ํ ๋๋ก ๋ฐ์ํ์ง ์์ต๋๋ค.
DtQuickFilter ๊ตฌ์ฑ ์์๋ [filters] ์ ๋ ฅ์ ์ ๋ฌ๋ ํํฐ์ ์ ์ ํ๊ฒ ๋ฐ์ํด์ผ ํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ (filterChanges) ์ด๋ฒคํธ๊ฐ ๋ฐ์ํด์ผ ํฉ๋๋ค.
DtQuickFilter ๊ตฌ์ฑ ์์๋ [filters]์ ์ ๋ฌ๋ ํํฐ๋ฅผ ํ์ฉํ์ง๋ง ์ด๋ฒคํธ ์ฒ๋ฆฌ๊ธฐ๋ฅผ ์คํํ์ง ์์ผ๋ฉฐ ์ฝ์์๋ ExpressionChangedAfterItHasBeenCheckedError๊ฐ ํ์๋ฉ๋๋ค.
๊ฐ์ฌํฉ๋๋ค!
์๋ฅด๋
ธ
@areknow ์ฌ์์ฐ ์์ ๋ฅผ ์ ๊ณตํ๊ณ ๋ฌธ์ ๋ฅผ ์ด์ด์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค.
์ด๋ฒคํธ๊ฐ ๋ฐ์ํ์ง ์๋ ๊ฒ์ ์๋์ ์ผ๋ก ์ค๊ณ๋ ๊ฒ ๊ฐ์ต๋๋ค. ํํฐ๋ฅผ ์ด๋ฏธ ์ค์ ํ๊ธฐ ๋๋ฌธ์ ํํฐ๊ฐ ๋ณ๊ฒฝ๋์์์ ์ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์
๋ ฅ์ด ์ค์ ๋ ์งํ์ ์ด๋ฒคํธ๋ฅผ ๋ฐ์์ํค์ง ์์ต๋๋ค. ์ฌ์ฉ์๊ฐ ๊ตฌ์ฑ ์์์ ์ํธ ์์ฉํ ๋๋ง ์ด๋ฒคํธ๋ฅผ ๋ฐ์์ํต๋๋ค. ํ์ง๋ง ์ด ๊ฒฝ์ฐ์๋ ๋ด๊ฐ ํ๋ฆด ์ ์์ต๋๋ค @lukasholzer ๋น์ ์ ํ์คํ ๋ ๋ง์ด ์๊ณ ์์ต๋๋ค :)
ExpressionChangedAfterChecked ์ค๋ฅ์ ๊ด๋ จํ์ฌ - ์ด๊ฒ์ ํ์คํ ํ์ธํด์ผ ํ ์ฌํญ์ ๋๋ค.
์ด ์์ ์์ ์ฐ๋ฆฌ๋ ์ด๊ฒ์ด viewEngine์์ ์คํํ ๋ ๋ฌธ์ ๋ผ๊ณ ๊ฐ์ ํฉ๋๋ค.
์ฐ๋ฆฌ๋ ๊ฐ๋ฐ ๋ฐ ๋ฐ๋ชจ ์ ํ๋ฆฌ์ผ์ด์
์์ ์ด๋ฅผ ์ฌํํ๋ ค๊ณ ์๋ํ์ง๋ง ์ฑ๊ณตํ์ง ๋ชปํ์ต๋๋ค. stackblitz ์ธ๋ถ์์ ๋ฌธ์ ๋ฅผ ์ฌํํ ์ ์์์ต๋๋ค.
@areknow ์ด ๋ฌธ์ ๋ฅผ ๋ฐ๊ฒฌํ ์ฑ์ด viewEngine์์ ์คํ ์ค์ธ์ง ํ์ธํ ์ ์์ต๋๊น(stackblitz๊ฐ viewEngine์ ์คํ ์ค์์ ์๊ณ ์์ต๋๋ค)?
@ffriedl89 ๋ฌผ๋ก ์ ๋๋ค. ์ด๋ฒคํธ ํธ๋ค๋ฌ์ ๋ํ ์ค๋ช ๊ฐ์ฌํฉ๋๋ค!
@gselltho ๋ด ์ ํ๋ฆฌ์ผ์ด์ ์ด viewEngine์ ์ฌ์ฉํ๊ณ ์์์ ํ์ธํ ์ ์์ต๋๋ค.
๊ณ ๋ง์ ์๋ค์!
@tomheller ๋ฐฉ๊ธ ๋ด ์ฑ์์ Ivy๋ฅผ ํ์ฑํํ์ง๋ง ์ฌ์ ํ ExpressionChangedAfterChecked ์ค๋ฅ๊ฐ ํ์๋ฉ๋๋ค. ๋ค๋ฅธ ์ผ์ด ์ผ์ด๋๊ณ ์๋ ๊ฒ์ ์๋๊น?
๋ ๋ค๋ฅธ ํฅ๋ฏธ๋ก์ด ์ ๋ฐ์ดํธ: ์ค๋ฅ๋ ๋ก์ปฌ์์๋ง ๋ฐ์ํฉ๋๋ค. ์ฐ๋ฆฌ์ ํ์ดํ๋ผ์ธ(jenkins)์ ํตํด dev์์ ๋น๋ํ ํ์๋ dev env์์ ์ค๋ฅ๊ฐ ํ์๋์ง ์์ต๋๋ค.
๋ก์ปฌ์์ ์ ์ฒด npm ci
ํ์ง๋ง ์ฌ์ ํ ์ค๋ฅ๊ฐ ํ์๋ฉ๋๋ค. ์ง์์ผ ํ ๋ค๋ฅธ ์บ์๊ฐ ์์ต๋๊น?
๊ฐ์ฌ!
@areknow AOT๋ฅผ ์ฌ์ฉํ์ฌ ๋ก์ปฌ์์ ์ฑ์ ๋น๋ํด ๋ณผ ์ ์์ต๋๊น? (๋ฏธ๋ฆฌ ์ปดํ์ผ). ๋น์ ์ ์ค์ ํ์ฌ ์ฌ์ฉํ ์ ์์ต๋๋ค aot
์ฌ์ฐ angular.json
true๋ก ๋๋ ์ ๋ฌํ์ฌ --aot
๋ฐ๋ ng serve ...
๋ช
๋ น.
๋๋ ์ด๊ฒ์ด JIT(์ ์) ์ปดํ์ผ ๋ฌธ์ ๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ด๊ฒ์ด ๊ฐ๋ฐ ํ๊ฒฝ์์ ๋ณผ ์ ์๋ ์ด์ ์ผ ๊ฒ์ ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ๋ฒ์ 9๋ถํฐ ์ปดํ์ผ์ AOT๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
https://angular.io/guide/aot-compiler#choosing -a-์ปดํ์ผ๋ฌ
๊ธฐ๋ก์ ์ํด ์ด ๋ฌธ์ ๋ฅผ ์ถ๊ฐ๋ก ์กฐ์ฌํ๊ธฐ ์ํด ํตํ ๋๊ธฐํ๋ ์์ฝ๋์ด ์์ต๋๋ค. ์ค์ ํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค @areknow .
@areknow AOT๋ฅผ ์ฌ์ฉํ์ฌ ๋ก์ปฌ์์ ์ฑ์ ๋น๋ํด ๋ณผ ์ ์์ต๋๊น? (๋ฏธ๋ฆฌ ์ปดํ์ผ). ๋น์ ์ ์ค์ ํ์ฌ ์ฌ์ฉํ ์ ์์ต๋๋ค
aot
์ฌ์ฐangular.json
true๋ก ๋๋ ์ ๋ฌํ์ฌ--aot
๋ฐ๋ng serve ...
๋ช ๋ น.๋๋ ์ด๊ฒ์ด JIT(์ ์) ์ปดํ์ผ ๋ฌธ์ ๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ด๊ฒ์ด ๊ฐ๋ฐ ํ๊ฒฝ์์ ๋ณผ ์ ์๋ ์ด์ ์ผ ๊ฒ์ ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ๋ฒ์ 9๋ถํฐ ์ปดํ์ผ์ AOT๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
https://angular.io/guide/aot-compiler#choosing -a-์ปดํ์ผ๋ฌ
@lukasholzer ๋ต๋ณ ๊ฐ์ฌํฉ๋๋ค!
angular.json์ Serve ๋น๋ ๊ตฌ์ฑ์ aot: true
๋ฅผ ์ถ๊ฐํ๋ ค๊ณ ์๋ํ๊ณ ๋ํ serve ๋ช
๋ น์ --aot
ํ๋๊ทธ๋ฅผ ์ถ๊ฐํ๋ ค๊ณ ํ์ต๋๋ค. ์ฌ์ ํ ๋ก์ปฌ์์ ์ค๋ฅ๊ฐ ํ์๋ฉ๋๋ค ๐
์ด๊ฒ์ ์ ๋ง ์ด์ํด์ง๊ณ ์์ต๋๋ค. ๋ํ ivy: on|off
๋ฐ viewEngine: on|off
๊ฐ๋ฅํ ๋ชจ๋ ์์ด์ ์ฌ์ฉํ์ฌ ๊ฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์
์์ ์ด๋ฅผ ์๋ํ์ง๋ง ์ฌ์ ํ ์ค๋ฅ๋ฅผ ์ฌํํ ์ ์์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๋ ์ด๊ฒ์ stackblitz์์ ๋ณผ ์ ์๊ณ ์ ์ด๋ฐ ์ผ์ด ์ผ์ด๋๋์ง ์๋นํ ๋นํฉํฉ๋๋ค. @areknow์ ์ ํ๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ฒ ์ต๋๋ค. ์ฐ๋ฆฌ๊ฐ ๋จธ๋ฆฌ๋ฅผ ๋ง๋๋ฉด ์ฌ๊ธฐ์ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ์ ์ ์์ ๊ฒ์
๋๋ค.
@tomheller๋ ์ข์ ๊ฒ ๊ฐ์ต๋๋ค!
@tomheller ์๋ก์ด ํ๋ก์ ํธ์์ ๋ฌธ์ ๋ฅผ ์ฌํํ ์ ์์์ต๋๋ค: https://github.com/areknow/barista-quick-filter-bug
๊ทธ๋๋ ์์ ๋ ์๊ฐ์ ๋ง๋์ ๋ฐ๊ฐ์์๐
@areknow ๋๋ถ์ ๊ทธ๊ฐ ์ ๊ณตํ ์ค์ ์์ ๋ฌธ์ ์ ์์ธ์ ์ถ์ ํ ์ ์์์ต๋๋ค. ๋ถํํ๋ ์ฐ๋ฆฌ๋ ์ฌ์ ํ ๋ฆฌํฌ์งํ ๋ฆฌ ๋ด์ ์ด๋ค ์ ํ๋ฆฌ์ผ์ด์ ์์๋ ์ด๋ฅผ ์ฌํํ ์ ์์ต๋๋ค. ์ด๋ ๋ค์ ๊ฑฑ์ ์ค๋ฌ์ด ์ผ์ ๋๋ค.