Angular.js: ๊ธฐ๋Šฅ: ngTrueValue๋Š” ๋ฌธ์ž์—ด์ด ์•„๋‹Œ ๊ฐ’์„ ํ—ˆ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

ng-model ์ฒดํฌ๋ฐ•์Šค์˜ ๊ฒฝ์šฐ ngTrueValue๋Š” ๋ฌธ์ž์—ด๋งŒ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. js ๊ฐ์ฒด๋ฅผ ์ง€์›ํ•˜๋„๋ก ๊ฐ’์„ ์–ป์œผ๋ ค๋ฉด ์‹ค์ œ๋กœ ๊ฐ๋„ ํ‘œํ˜„์‹๊ณผ ํ‰๊ฐ€๋ฅผ ์ˆ˜๋ฝํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

PRs plz! forms moderate feature

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

๋ฐฉ๊ธˆ ํฅ๋ฏธ๋กœ์šด ๊นจ๋‹ฌ์Œ์„ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ํ•˜๋ ค๊ณ  ํ–ˆ๋˜ ๊ฒƒ - ๊ทธ๋ฆฌ๊ณ  ๊ทธ ๋ชจ์Šต์—์„œ ๋ณผ ๋•Œ ๋งŽ์€ ๋ถ„๋“ค์ด ํ•˜๋ ค๊ณ  ํ–ˆ๋˜ ๊ฒƒ - ์‹ค์ œ๋กœ ๋‹ค์Œ์„ ํ†ตํ•ด ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ng-true-value="{{ myVariable | json }}"

์ด๊ฒƒ์€ ๋ฌธ์ž์—ด ๊ฐ’, ๋ถ€์šธ ๋ฐ ์ˆซ์ž๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์‹ค์ œ๋กœ ์ด๊ฒƒ์„ ์ข‹์•„ํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋Š” ์•„์ง ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ ํ™•์‹คํžˆ ์žฌ๋ฏธ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์•„๋งˆ๋„ ์ด๊ฒƒ์€ ๋‹ค๋ฅธ ๋ˆ„๊ตฐ๊ฐ€๋ฅผ ๋„์šธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

ngTrueValue ์˜ ๋ชฉ์ ์— ๋Œ€ํ•ด ์™„์ „ํžˆ ํ™•์‹ ํ•  ์ˆ˜ ์—†์ง€๋งŒ ํ•œ ๊ฒฝ์šฐ์— ๋Œ€ํ•ด ์ปจํŠธ๋กค๋Ÿฌ์— ์‹œ๊ณ„๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•œ ํŽธ์˜ ์ง€์‹œ๋ฌธ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. ์ผ๋ถ€ ๋ชจ๋ธ์„ ๋ณต์žกํ•œ ๊ฐ’์œผ๋กœ ์„ค์ •ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ํ™•์ธ๋ž€์˜ ๋ชจ๋ธ์— $scope.$watch ๋ฅผ ๋„ฃ๊ณ  ๊ทธ์— ๋”ฐ๋ผ ๋ฒ”์œ„์˜ ๋ชจ๋ธ์„ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์ด ๋” ๊น”๋”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@coli , ์—ผ๋‘์— ๋‘” ํŠน์ • ์‚ฌ์šฉ ์‚ฌ๋ก€๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? @IgorMinar , @mhevery , @vojtajina , ์—ฌ๋Ÿฌ๋ถ„์€ ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜์„ธ์š”?

์‚ฌ์šฉ ์‚ฌ๋ก€๋Š” ์‹ค์ œ๋กœ ๋งค์šฐ ์ผ๋ฐ˜์ ์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” say $scope.categories=[{id:5,name:"First"},...}์— say category ๊ฐ์ฒด์˜ ๋ฐฐ์—ด์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ ํ•ด๋‹น ๋ฒ”์ฃผ์˜ ํ•˜์œ„ ์ง‘ํ•ฉ์„ ํฌํ•จํ•˜๋Š” selectedCategories ๋ฐฐ์—ด์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ผ๋ถ€ ์นดํ…Œ๊ณ ๋ฆฌ(ํŽ˜์ด์ง•)์— ์ฒดํฌ๋ฐ•์Šค๋ฅผ ํ‘œ์‹œํ•˜๊ณ  ์‹ถ์€๋ฐ ์ฒดํฌ๋ฐ•์Šค๋ฅผ ์ฒดํฌํ•˜๊ฑฐ๋‚˜ ์ฒดํฌ๋ฅผ ํ•ด์ œํ•˜๋ฉด selectedCategories๊ฐ€ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.

์‹ค์ œ๋กœ ์œ„์˜ ์ง€์›์„ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด ๊ธฐ๋ณธ ์ฒดํฌ๋ฐ•์Šค ๋™์ž‘์„ ๋ฎ์–ด์“ฐ๋Š” ์ง€์‹œ๋ฌธ์„ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ฝ”๋“œ๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚ด ์‚ฌ์šฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋๋‚ฌ์Šต๋‹ˆ๋‹ค. ๋‚ด ๊ฒฝ์šฐ์™€ ๊ฐ™์ด ๊ฐœ์ฒด ๋น„๊ต๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด keyField๊ฐ€ ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค. ์„ ํƒํ•œ ๊ทธ๋ฃน ๊ฐœ์ฒด์™€ ๊ทธ๋ฃน ๊ฐœ์ฒด๋Š” ์ฒ˜์Œ์— ์•ฝ๊ฐ„ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(2๊ฐœ์˜ ๋‹ค๋ฅธ ๋ฐฑ์—”๋“œ API์—์„œ ๊ฐ€์ ธ์˜ด).

<ng-repeat="group in groups>
    <input type='checkbox' ng-model="selectedArray" ng-true-value="group" mi-checkbox="{keyField:'id'}">
</>

์  ์žฅ, ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ•˜๊ณ  ์‹ค๋งํ–ˆ๋˜ ํ›จ์”ฌ ๋” ๊ฐ„๋‹จํ•œ ์‚ฌ์šฉ ์‚ฌ๋ก€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ž์—ด์ด ์•„๋‹Œ ์ •์ˆ˜๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค!

ํ…œํ”Œ๋ฆฟ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ™•์ธ๋ž€ ์ปจํŠธ๋กค์„ ๋ Œ๋”๋งํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์‹ค์ œ ๊ฐ’์„ ์•Œ ์ˆ˜ ์—†์œผ๋ฉฐ ํ•ด๋‹น ๊ฐ’์€ ๋ Œ๋”๋งํ•˜๋ ค๋Š” ํŠน์ • ์ œ์–ด ์ •๋ณด์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

๋‚˜๋„ ng-true-value๊ฐ€ ํ‘œํ˜„์‹์ด๊ธฐ๋ฅผ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค. ์ฒดํฌ๋ฐ•์Šค ์ˆ˜๊ฐ€ ๋Ÿฐํƒ€์ž„์— ๊ฒฐ์ •๋˜๋ฉด ์‹œ๊ฐ„ ์ดˆ๊ณผ ๋ž˜ํผ๊ฐ€ ์žˆ๋Š” ๋ฒ”์œ„ ๋ฉ”์„œ๋“œ์— ์˜์กดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

+1. ng-true-value๋กœ ํ‘œํ˜„ ์ง€์›

+1 ng-true-value์˜ ์ •์ˆ˜ ์ง€์›

๋ฌธ์ž์—ด ๋Œ€์‹  ํ‘œํ˜„์‹์˜ ๊ฒฝ์šฐ +1

+1 ์ง€์› ํ‘œํ˜„!

ํ‘œํ˜„์‹์˜ ๊ฒฝ์šฐ +1

+1 ์ง€์› ๊ฐœ์ฒด:

<div ng-repeat="group in groups">
    <input type='checkbox' ng-model="array[$index]" ng-true-value="group" />
</div>

@coli ๋‹น์‹ ์ด ์ž‘์„ฑํ•œ ์ง€์‹œ๋ฌธ์„ ๊ณต์œ ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ์ด ๋ฌธ์ œ๊ฐ€ ์•„์ง ๊ณ ๋ ค ์ค‘์ผ ๋•Œ ํฐ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ์š”์ ์—์„œ?

@brab ๋ถˆํ–‰ํžˆ๋„ ์ด์ „ ์ž‘์—…์—์„œ ์ž‘์„ฑํ–ˆ์ง€๋งŒ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™•์ธ๋ž€์— ๋Œ€ํ•œ ๋‚ด์žฅ ์ฝ”๋“œ์™€ ์œ ์‚ฌํ•˜๋ฉฐ ์‚ฌ์šฉ์ž ์ง€์ • ์ง€์‹œ๋ฌธ์— ๋ณต์‚ฌ/๋ถ™์—ฌ๋„ฃ๊ธฐํ•˜๊ณ  ํ‘œํ˜„์‹ ์ง€์›์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. (+ ๋‚ด์žฅ๋œ ๊ฒƒ์„ ์ œ๊ฑฐํ•˜๋Š” ์ถ”์•…ํ•œ ํ•ดํ‚น)

ํ‘œํ˜„์€ ํ›Œ๋ฅญํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค! ๊ทธ๋Ÿฌ๋‚˜ ์ •์ˆ˜์— ๋Œ€ํ•œ JavaScript ์ง„๋ฆฌ ํ…Œ์ŠคํŠธ๋„ ์˜ˆ์ƒ๋ฉ๋‹ˆ๋‹ค. $resource๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ถ€์šธ์—์„œ ์ •์ˆ˜ ๊ฐ’(1 ๋˜๋Š” 0)์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฐœ์ฒด๋ฅผ ์ฑ„์›๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ž…๋ ฅ์˜ ng-model์ด ๋ฐ”์ธ๋”ฉ๋˜๋Š” $scope์— ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ng-true-value="1"์„ ์„ค์ •ํ•˜๋ฉด ์ •์ˆ˜ 1์„ true๋กœ ์ธ์‹ํ•˜์ง€ ๋ชปํ•˜๊ณ  ํ™•์ธ๋ž€์„ ์„ ํƒํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์— ์ •๋ง ๋†€๋ž์Šต๋‹ˆ๋‹ค. ๊ทธ ๋™์•ˆ ์–ธ๊ธ‰๋œ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

+1

ํ‘œํ˜„์‹์˜ ๊ฒฝ์šฐ +1

+1. ng-true-value๋กœ ํ‘œํ˜„ ์ง€์›

์ง€์› ํ‘œํ˜„์— +1!
์ œ ๊ฒฝ์šฐ์—๋Š” ์–‘์‹์„ ๋™์ ์œผ๋กœ ์ž‘์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์˜ˆ: http://jsfiddle.net/federosky/N8Wjm/5/

์ •์ˆ˜์˜ ๊ฒฝ์šฐ +1

์ •์ˆ˜์˜ ๊ฒฝ์šฐ 1+

์ •์ˆ˜(๋˜๋Š” ๋ชจ๋“  JS ๋ฒˆํ˜ธ)์˜ ๊ฒฝ์šฐ +1

:+1: ํ‘œํ˜„์„ ์ง€์›ํ•ด ์ฃผ์„ธ์š”! ์ œ๋ฐœ! ์ œ๋ฐœ! :-)

์ ์–ด๋„ ์ •์ˆ˜ ์ง€์›, ๋ฐ”๋žŒ์งํ•˜๊ฒŒ๋Š” ํ‘œํ˜„์‹์˜ ๊ฒฝ์šฐ +1์ž…๋‹ˆ๋‹ค.

๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ง€์› ๋ฒˆํ˜ธ์— ๋Œ€ํ•œ PR์„ ์ œ์ถœํ•˜๋Š” ๊ฒƒ์€ ์–ด๋–ป์Šต๋‹ˆ๊นŒ?

ํ‘œํ˜„์‹์˜ ๊ฒฝ์šฐ +1

์ •์ˆ˜์˜ ๊ฒฝ์šฐ +1

์ •์ˆ˜์˜ ๊ฒฝ์šฐ +1

+1

:+1: ํ‘œํ˜„์‹์šฉ.

+1. ํŽ˜์ด์ง€์—์„œ 'ํ‘œ์‹œ' ํ™•์ธ๋ž€์œผ๋กœ ํ‘œ์‹œ๋˜์–ด์•ผ ํ•˜๋Š” ๋ถ€์šธ ์†์„ฑ '์ˆจ๊น€'์ด ์žˆ์„ ๋•Œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ FALSE๋ฅผ ์˜๋ฏธํ•˜๋ ค๋ฉด 'checked' ์ƒํƒœ๊ฐ€ ํ•„์š”ํ•˜๊ณ  'TRUE'๋ฅผ ์˜๋ฏธํ•˜๋ ค๋ฉด unchecked ์ƒํƒœ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์‰ฌ์šด ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ๋ฌด์—‡์ธ์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. ๊ฐ„์ ‘ ๋ฐ”์ธ๋”ฉ์— ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ž์ฒด ํ™•์ธ๋ž€ ์ง€์‹œ๋ฌธ์„ ์ž‘์„ฑํ•˜๊ฑฐ๋‚˜ ์—ญ ๋ณด์กฐ ๋ถ€์šธ ์†์„ฑ์œผ๋กœ ๋ฒ”์œ„๋ฅผ ์˜ค์—ผ์‹œํ‚ค๋Š” ๊ฒƒ์„ ์ •๋ง ์ข‹์•„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๊ตฌํ˜„ํ•˜๊ธฐ๊ฐ€ ๋งค์šฐ ๊ฐ„๋‹จํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ž๊ธฐ ์ „์— ์‹œ๋„ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋‚ด ํŒจ์น˜๋Š” ์ƒ์ˆ˜ ํ‘œํ˜„์‹๋งŒ ์ง€์›ํ•˜์ง€๋งŒ ์‚ฌ๋žŒ๋“ค์ด ์ •๋ง๋กœ ๊ทธ๊ฒƒ์„ ํ•„์š”๋กœ ํ•œ๋‹ค๋ฉด ์–ด๋–ค ํ‘œํ˜„์‹์ด๋ผ๋„ ์ถฉ๋ถ„ํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๊ฒƒ์ด ๋ธŒ๋ ˆ์ดํ‚น ์ฒด์ธ์ง€๋ฅผ ์ผ์œผํ‚ค์ง€ ์•Š๋Š” ๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ•์ด์—ˆ์Šต๋‹ˆ๋‹ค.

+1

+1

+1

์ •์ˆ˜ ์œ ํ˜•์˜ ๊ฒฝ์šฐ +1

+1

ํ‘œํ˜„์‹์˜ ๊ฒฝ์šฐ +1

+1

+1

+1

+1

:+1:

๋‹ค์Œ์€ ์ง€๊ธˆ ํ•„์š”ํ•œ ํ•ดํ‚น์ž…๋‹ˆ๋‹ค(๋งŽ์€ WTF).

<input type="checkbox" ng-model="fake" ng-checked="!notChecked" ng-change="notChecked = !notChecked"/>

+1

+1 "+1"์˜ 2๋…„์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์™œ ์•„์ง ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ?

@jancarloviray , +1

๋„ˆ๋ฌด ๋‚˜์ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ƒํ™ฉ์ด ๋” ๋ณต์žกํ•ด ์กŒ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
์˜ˆ์ „์— ์‚ฌ์šฉํ•˜๋˜
ng-true-value="{{proxyOnValue}}"
์—ฌ๊ธฐ์„œ proxyOnValue๋Š” ์ปจํŠธ๋กค๋Ÿฌ์—์„œ ์ดˆ๊ธฐํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
(์‹ค์ œ ๊ฐ’์ด ๋‹ค๋ฅธ HTTP/HTTPS/FTP/POP3/SMTP ํ”„๋ก์‹œ ๊ตฌ์„ฑ์— ๋Œ€ํ•ด ๋™์ผํ•œ ๋ณด๊ธฐ๊ฐ€ ์žฌ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.)

์ด์ œ ๋‚˜๋Š” ์‹œ๋„ํ–ˆ๋‹ค
ng-true-value="proxyOnValue"
๊ทธ๋Ÿฌ๋‚˜ ํ‘œํ˜„์‹์ด ์ผ์ •ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์ด๊ฒƒ์€ ๊ฐ„๋‹จํ•œ ๊ตฌํ˜„(ngTrueValue)์„ ๋” ๋ณต์žกํ•œ ๊ตฌํ˜„(watch ๋˜๋Š” Object.defineProperty)์œผ๋กœ ๊ต์ฒดํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•˜๋ฏ€๋กœ ์‹ค์ œ๋กœ๋Š” ์˜๋„ํ•œ ๊ฒƒ๊ณผ ๋ฐ˜๋Œ€์ž…๋‹ˆ๋‹ค.

์™œ ์ด๋Ÿฐ ์ธ์œ„์ ์ธ ์ œํ•œ์„ ํ•ฉ๋‹ˆ๊นŒ?
๋‹จ์ง€

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

@eekboom - ๋ณด๊ฐ„๋ฒ•์„ ๊ณ„์† ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. http://plnkr.co/edit/LQ6OpFjkjiFLxxMJ9hxj?p=preview

@petebacondarwin - ๊ทธ๋Š” ๋ณด๊ฐ„๋ฒ•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋„์›€์ด ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค: http://plnkr.co/edit/nNwjEkPIDJwe60HWX950?p=preview
๊ฐ’์€ ํ•œ ๋ฒˆ๋งŒ ํ™•์ธ๋ฉ๋‹ˆ๋‹ค. ์ดํ›„ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ๊ณ„์‚ฐ์— ๋ฐ˜์˜๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ํ•ญ์ƒ ์ดˆ๊ธฐ ๊ฐ’๋งŒ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

@dliebscher - ๋‚ด ์ดํ•ด๋Š” @eekboom ์ด ํ•œ ๋ฒˆ๋งŒ ์ดˆ๊ธฐํ™”ํ•˜๊ธฐ๋ฅผ ์›ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด์ „์—๋Š” ์ปจํŠธ๋กค๋Ÿฌ์—์„œ proxyOnValue๊ฐ€ ์ดˆ๊ธฐํ™”๋œ ng-true-value="{{proxyOnValue}}" ๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ ๋ฐ ์•„๋‹ˆ์˜ค: ํ•œ ๋ฒˆ๋งŒ ์ดˆ๊ธฐํ™”ํ•˜๊ณ  ์‹ถ์ง€๋งŒ ํ”„๋ก์‹œ ๊ตฌ์„ฑ์ด xhr์„ ํ†ตํ•ด ๋กœ๋“œ๋œ ํ›„์—๋งŒ ์ดˆ๊ธฐํ™”๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ทฐ๊ฐ€ ์ดˆ๊ธฐํ™”๋œ ํ›„ (undefined์—์„œ) ํ•œ ๋ฒˆ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.

@eekboom
1.2์—์„œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•  ๋•Œ ๋‹ค์Œ์œผ๋กœ ์ „ํ™˜ํ–ˆ์Šต๋‹ˆ๋‹ค.

ng-true-value="{{proxyOnValue}}"

์—๊ฒŒ

ng-true-value="'{{proxyOnValue}}'"

์ž‘๋™ํ•˜์ง€๋งŒ ๋ฐ”๋ณด์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

๋ฐฉ๊ธˆ ํฅ๋ฏธ๋กœ์šด ๊นจ๋‹ฌ์Œ์„ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ํ•˜๋ ค๊ณ  ํ–ˆ๋˜ ๊ฒƒ - ๊ทธ๋ฆฌ๊ณ  ๊ทธ ๋ชจ์Šต์—์„œ ๋ณผ ๋•Œ ๋งŽ์€ ๋ถ„๋“ค์ด ํ•˜๋ ค๊ณ  ํ–ˆ๋˜ ๊ฒƒ - ์‹ค์ œ๋กœ ๋‹ค์Œ์„ ํ†ตํ•ด ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ng-true-value="{{ myVariable | json }}"

์ด๊ฒƒ์€ ๋ฌธ์ž์—ด ๊ฐ’, ๋ถ€์šธ ๋ฐ ์ˆซ์ž๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์‹ค์ œ๋กœ ์ด๊ฒƒ์„ ์ข‹์•„ํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋Š” ์•„์ง ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ ํ™•์‹คํžˆ ์žฌ๋ฏธ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์•„๋งˆ๋„ ์ด๊ฒƒ์€ ๋‹ค๋ฅธ ๋ˆ„๊ตฐ๊ฐ€๋ฅผ ๋„์šธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

getu-lar ๋‚˜๋Š” ๋‹น์‹ ์ด ๋งํ•œ ๊ฒƒ์„ ์‹œ๋„ํ–ˆ๋Š”๋ฐ ๋ณต์žกํ•œ ๊ฐœ์ฒด๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ng-false-value="{}" ๋กœ ์ฑ„์›Œ์ง„ ng-false-value์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์ „์— ํ•„ํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜์—ฌ ๋ฐฐ์—ด์—์„œ ๋ชจ๋“  ๊ฑฐ์ง“ ๊ฐ’์„ ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

getu-lar ์˜ ์†”๋ฃจ์…˜์ด ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌ ํ•ด์š”.

"101_3"๊ณผ ๊ฐ™์ด ๋ฐ‘์ค„์ด ์žˆ๋Š” ๋ฌธ์ž์—ด๋กœ ํ•ด์„๋˜๋Š” ํ‘œํ˜„์‹์„ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” getu-lar ์˜ ์†”๋ฃจ์…˜์„ ์‚ฌ์šฉํ–ˆ๊ณ  ๊ฐ„๋‹จํ•˜๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜๋„ ํ•ดํ‚น์ฒ˜๋Ÿผ ๋Š๊ปด์ง‘๋‹ˆ๋‹ค. ๊ณต์œ ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

ํ‘œํ˜„์‹์˜ ๊ฒฝ์šฐ +1

+1

Angular ํŒ€์ด 1.x ์‹œ๋ฆฌ์ฆˆ์— ๋Œ€ํ•ด ์ •์ƒ์ ์ธ ์ฒดํฌ๋ฐ•์Šค ์ง€์‹œ๋ฌธ์„ ์ œ๊ณตํ•  ๊ฒƒ์ด๋ผ๋Š” ํฌ๋ง์ด ๋ณ„๋กœ ์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค... ๋„ˆ๋ฌด ์–ด๋ ค์šธ ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. ํ‘œํ˜„์‹ ์ง€์›์€ ํ•„์ˆ˜ ์ธ์šฉ์œผ๋กœ ์ธํ•ด ์™„์ „ํžˆ ์ด์ „ ๋ฒ„์ „๊ณผ ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค.

๊ทธ๋•Œ๊นŒ์ง€ ์ œ์•ˆ๋œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค.

ng-true-value="{{ myVariable | json }}"

myVariable ๊ฐ€ ์ปจํŠธ๋กค๋Ÿฌ์— ์ •์˜๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ํฌ์ŠคํŠธ ๋งํฌ์—์„œ ์ •์˜ํ•˜๋ ค๊ณ ํ–ˆ์ง€๋งŒ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

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