ng-model ์ฒดํฌ๋ฐ์ค์ ๊ฒฝ์ฐ ngTrueValue๋ ๋ฌธ์์ด๋ง ์ง์ํฉ๋๋ค. js ๊ฐ์ฒด๋ฅผ ์ง์ํ๋๋ก ๊ฐ์ ์ป์ผ๋ ค๋ฉด ์ค์ ๋ก ๊ฐ๋ ํํ์๊ณผ ํ๊ฐ๋ฅผ ์๋ฝํด์ผ ํฉ๋๋ค.
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)์ผ๋ก ๊ต์ฒดํด์ผ ํ๋ค๋ ๊ฒ์ ์๋ฏธํ๋ฏ๋ก ์ค์ ๋ก๋ ์๋ํ ๊ฒ๊ณผ ๋ฐ๋์ ๋๋ค.
์ ์ด๋ฐ ์ธ์์ ์ธ ์ ํ์ ํฉ๋๊น?
๋จ์ง
@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
๊ฐ ์ปจํธ๋กค๋ฌ์ ์ ์๋์ด ์๋์ง ํ์ธํ์ญ์์ค. ํฌ์คํธ ๋งํฌ์์ ์ ์ํ๋ ค๊ณ ํ์ง๋ง ์๋ํ์ง ์์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋ฐฉ๊ธ ํฅ๋ฏธ๋ก์ด ๊นจ๋ฌ์์ ์ป์์ต๋๋ค. ๋ด๊ฐ ํ๋ ค๊ณ ํ๋ ๊ฒ - ๊ทธ๋ฆฌ๊ณ ๊ทธ ๋ชจ์ต์์ ๋ณผ ๋ ๋ง์ ๋ถ๋ค์ด ํ๋ ค๊ณ ํ๋ ๊ฒ - ์ค์ ๋ก ๋ค์์ ํตํด ์ํํ ์ ์์ต๋๋ค.
์ด๊ฒ์ ๋ฌธ์์ด ๊ฐ, ๋ถ์ธ ๋ฐ ์ซ์๋ฅผ ์ง์ํฉ๋๋ค. ๋ด๊ฐ ์ค์ ๋ก ์ด๊ฒ์ ์ข์ํ๋์ง ์ฌ๋ถ๋ ์์ง ํ์คํ์ง ์์ง๋ง ํ์คํ ์ฌ๋ฏธ์์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์๋ง๋ ์ด๊ฒ์ ๋ค๋ฅธ ๋๊ตฐ๊ฐ๋ฅผ ๋์ธ ๊ฒ์ ๋๋ค.