Knockout: Observable์„ ๊ฐ•์ œ๋กœ ์—…๋ฐ์ดํŠธ

์— ๋งŒ๋“  2012๋…„ 08์›” 20์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: knockout/knockout

์•ˆ๋…• ๋ชจ๋‘,

์ƒˆ ๊ฐ’์ด _latestValue์™€ ๋‹ค๋ฅธ์ง€ ์—ฌ๋ถ€์— ๊ด€๊ณ„์—†์ด ๊ด€์ฐฐ ๊ฐ€๋Šฅ ๊ฐœ์ฒด๊ฐ€ ์—…๋ฐ์ดํŠธ ์ฒ˜๋ฆฌ๊ธฐ๋ฅผ ์‹คํ–‰ํ•˜๋„๋ก ๊ฐ•์ œํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๋Š” ์ˆœ๊ฐ„์— ๋ฌธ์ œ์— ์ง๋ฉดํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ๊ด€์ฐฐ ๊ฐ€๋Šฅ ํ•ญ๋ชฉ์ด ๋ฐ”์ธ๋”ฉ๋œ ์š”์†Œ์˜ ๋ณ€๊ฒฝ ์ด๋ฒคํŠธ์— ์˜ํ•ด ์ง์ ‘ ํŠธ๋ฆฌ๊ฑฐ๋˜์ง€ ์•Š๊ณ  ์ฝœ๋ฐฑ์œผ๋กœ ํ˜ธ์ถœ๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค(์‚ฌ์šฉ์ž ์ง€์ • ์ž๋™ ์™„์„ฑ ์ปจํŠธ๋กค).

์ด์ƒ์ ์ธ ์†”๋ฃจ์…˜์€ ์˜ต์ €๋ฒ„๋ธ”์— ๋Œ€ํ•œ "force" ํ”Œ๋ž˜๊ทธ์ž…๋‹ˆ๋‹ค.

myObservable("์ƒˆ ๊ฐ’", /* force = */ true)

์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๊ฑด๋ฐฐ, ์•ค๋“œ๋ฅ˜.

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

์˜ต์ €๋ฒ„๋ธ”์—๋Š” ์ด๋Ÿฌํ•œ ๋ชฉ์ ์œผ๋กœ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋Š” valueHasMutated ํ•จ์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

myObservable.valueHasMutated()

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

์˜ต์ €๋ฒ„๋ธ”์—๋Š” ์ด๋Ÿฌํ•œ ๋ชฉ์ ์œผ๋กœ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋Š” valueHasMutated ํ•จ์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

myObservable.valueHasMutated()

๋˜ํ•œ Observable์ด ์—…๋ฐ์ดํŠธ๋  ๋•Œ ํ•ญ์ƒ ์•Œ๋ฆฌ๋„๋ก ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

myObservable = ko.observable().extend({notify: 'always'});
myObservable("new value");  // will notify even if the value is already "new value"

๋ฌธ์„œ์— ์ด ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ๋ชจ๋‘ ํฌํ•จํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

valueHasMutated๋Š” ๋งค๋ ฅ์ฒ˜๋Ÿผ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค! ๊ณ ๋งˆ์›Œ์š”, ์—ฌ๋Ÿฌ๋ถ„ :-)

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