Angular.js: Textarea 자리 ν‘œμ‹œμž λ°”μΈλ”©μœΌλ‘œ 인해 IE11μ—μ„œ μ˜ˆμ™Έ λ°œμƒ

에 λ§Œλ“  2013λ…„ 11μ›” 19일  Β·  23μ½”λ©˜νŠΈ  Β·  좜처: angular/angular.js

λ‹€μŒ λ°”μ΄μ˜¬λ¦°μ„ μ°Έμ‘°ν•˜μ‹­μ‹œμ˜€.

http://jsfiddle.net/provegard/wLBwd/

μ˜¬λ°”λ₯Έ 자리 ν‘œμ‹œμžκ°€ λ‚˜νƒ€λ‚˜λŠ” λ™μ•ˆ μ½˜μ†”μ— λ‹€μŒ μŠ€νƒ 좔적도 ν‘œμ‹œλ©λ‹ˆλ‹€.

Error: Invalid argument.
   at interpolateFnWatchAction (http://code.angularjs.org/1.2.1/angular.js:6366:15)
   at $digest (http://code.angularjs.org/1.2.1/angular.js:11443:21)
   at $apply (http://code.angularjs.org/1.2.1/angular.js:11682:13)
   at Anonymous function (http://code.angularjs.org/1.2.1/angular.js:1285:9)
   at invoke (http://code.angularjs.org/1.2.1/angular.js:3616:18)
   at doBootstrap (http://code.angularjs.org/1.2.1/angular.js:1283:5)
   at bootstrap (http://code.angularjs.org/1.2.1/angular.js:1297:5)
   at angularInit (http://code.angularjs.org/1.2.1/angular.js:1246:5)
   at Anonymous function (http://code.angularjs.org/1.2.1/angular.js:20126:5)
   at trigger (http://code.angularjs.org/1.2.1/angular.js:2298:7)

IE 버전은 11.0.9600.16438μž…λ‹ˆλ‹€.

IE10 IE11 low investigation broken expected use

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

λ¬Έμ„œμ—μ„œ μ•Œ 수 μžˆλ“―μ΄ μ΄λŸ¬ν•œ 문제λ₯Ό ν•΄κ²°ν•˜λŠ” κ°€μž₯ μ‰¬μš΄ 방법은 placeholder="{{value}}" μ—μ„œ ng-attr-placeholder="{{value}}" 둜 μ „ν™˜ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

λͺ¨λ“  23 λŒ“κΈ€

λΆ€λͺ¨κ°€ μ—†λŠ” TextNode(nodeType=3)μ—μ„œ nodeValue에 μ•‘μ„ΈμŠ€ν•˜λ €κ³  μ‹œλ„ν•˜λŠ” ie10μ—μ„œλ„ λ°œμƒν•©λ‹ˆλ‹€.

// in function addTextInterpolateDirective()
node[0].nodeValue = value

https://github.com/angular/angular.js/issues/2614 와 관련이 μžˆμ„ 수 μžˆμŠ΅λ‹ˆκΉŒ ??

λ‹€μŒμ€ μž„μ‹œ ν•΄κ²° λ°©λ²•μž…λ‹ˆλ‹€... http://stackoverflow.com/a/20649762/1009125

λ‚˜λŠ” μ—¬μ „νžˆ μ‚¬μš©μž μ—μ΄μ „νŠΈ μŠ€λ‹ˆν•‘λ³΄λ‹€ κΈ°λŠ₯ μŠ€λ‹ˆν•‘μ„ μ„ ν˜Έν•©λ‹ˆλ‹€..... #2614의 λ‚΄ κ²Œμ‹œλ¬Ό μ°Έμ‘°

ν›Œλ₯­ν•΄ λ³΄μ΄μ§€λ§Œ 이 경우 μ–΄λ–€ κΈ°λŠ₯을 ν…ŒμŠ€νŠΈν•  수 μžˆμŠ΅λ‹ˆκΉŒ? 즉....으윽

자리 ν‘œμ‹œμžκ°€ 변경될 λ•Œ 이벀트λ₯Ό λ°œμƒμ‹œν‚€μ§€ μ•ŠλŠ” κΈ°λŠ₯(예:
λ‹€λ₯Έ ν˜Έμ— κ²Œμ‹œν•œ μŠ€λ‹ˆνŽ«(μ—¬μ „νžˆ μ μš©λ˜λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€))
2013λ…„ 12μ›” 17일 21μ‹œ 24뢄에 "Ender2050" [email protected] 이 λ‹€μŒκ³Ό 같이 μΌμŠ΅λ‹ˆλ‹€.

ν›Œλ₯­ν•΄ λ³΄μ΄μ§€λ§Œ 이 경우 μ–΄λ–€ κΈ°λŠ₯을 ν…ŒμŠ€νŠΈν•  수 μžˆμŠ΅λ‹ˆκΉŒ? 즉....으윽

β€”
이 이메일에 직접 λ‹΅μž₯ν•˜κ±°λ‚˜ Gi tHubhttps://github.com/angular/angular.js/issues/5025#issuecomment -30818022μ—μ„œ ν™•μΈν•˜μ„Έμš”.
.

λ¬Έμ„œμ—μ„œ μ•Œ 수 μžˆλ“―μ΄ μ΄λŸ¬ν•œ 문제λ₯Ό ν•΄κ²°ν•˜λŠ” κ°€μž₯ μ‰¬μš΄ 방법은 placeholder="{{value}}" μ—μ„œ ng-attr-placeholder="{{value}}" 둜 μ „ν™˜ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

@seckardt μΏ¨, ngAttr 에 λŒ€ν•΄ λͺ°λžμŠ΅λ‹ˆλ‹€. ν•΄κ²° λ°©λ²•μœΌλ‘œ μ‚¬μš©μž 지정 μ§€μ‹œλ¬Έμ„ μž‘μ„±ν–ˆμ§€λ§Œ 이제 μ œκ±°ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λ¬Έμ„œμ˜ 개발자 κ°€μ΄λ“œ / μ§€μ‹œλ¬Έμ— μžˆμ§€λ§Œ API μ°Έμ‘°μ—λŠ” μ—†μŠ΅λ‹ˆλ‹€. 그곳에도 두면 쒋지 μ•Šμ„κΉŒμš”?

κ·ΈλŸ¬λ‚˜ 이것은 이 였λ₯˜λ₯Ό λ°œμƒμ‹œν‚€λŠ” placeholder 바인딩이 μ•„λ‹™λ‹ˆλ‹€. 이것은 λ™μΌν•œ λ™μž‘μœΌλ‘œ μ‹€νŒ¨ν–ˆμŠ΅λ‹ˆλ‹€.

<textarea ng-model="foo">{{ foo }}</textarea>

보간은 μ€‘λ³΅λ˜λ―€λ‘œ 이 경우 ν•΄κ²° 방법은 {{ foo }} λ₯Ό μ œκ±°ν•˜λŠ” κ²ƒμ΄μ§€λ§Œ 이에 λŒ€ν•œ 였λ₯˜ λ©”μ‹œμ§€κ°€ λ„ˆλ¬΄ μ“Έλͺ¨κ°€ μ—†λ‹€λŠ” 것은 μΌμ’…μ˜ μ„±κ°€μ‹  μΌμž…λ‹ˆλ‹€. 문제λ₯Ό μ°ΎκΈ° 전에 이 문제λ₯Ό ν•΄κ²°ν•˜λŠ” 데 λͺ‡ μ‹œκ°„μ„ λ³΄λƒˆμŠ΅λ‹ˆλ‹€.

이 였λ₯˜λŠ” style="padding: 3px; background: {{l.Color}}; opacity: 0.7; border-radius: 5px" μŠ€νƒ€μΌμ„ μ„€μ •ν•  λ•Œλ„ λ°œμƒν•©λ‹ˆλ‹€.

IEμ—μ„œ μž‘λ™ν•˜λŠ” λ°©μ‹μœΌλ‘œ 이 ν‘œν˜„μ‹μ„ μ–΄λ–»κ²Œ λŒ€μ²΄ν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

이것은 IE의 μ•Œλ €μ§„ λ¬Έμ œμž…λ‹ˆλ‹€. μœ„μ—μ„œ μ–ΈκΈ‰ν–ˆλ“―μ΄ ng-attr-style="..." λ₯Ό μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

이 였λ₯˜κ°€ λ°œμƒν•˜λŠ” λͺ¨λ“  μ‚¬μš©μžλŠ” ν…μŠ€νŠΈ μ˜μ—­μ— λŒ€ν•΄ μ „μ†‘λœ 인수λ₯Ό μ°ΎμŠ΅λ‹ˆλ‹€.

λ‚˜λŠ” angular 1.2.28을 μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. λ™μΌν•œ 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.
<textarea ng-model="data">{{data}}</textarea> λŠ” Mozillaμ—μ„œ 잘 μž‘λ™ν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ IE 11은 잘λͺ»λœ 인수 였λ₯˜λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€. 이 μ½”λ“œ 쑰각에 λŒ€ν•΄.
ν•΄κ²°μ±…:
<textarea ng-model="data"></textarea> λ˜λŠ” <textarea>{{data}}</textarea>
ng-model에 λ°”μΈλ”©ν•˜κ³  값을 직접 μž…λ ₯ν•˜λ©΄ 논리적인 이 였λ₯˜κ°€ λ°œμƒν•˜λŠ” κ²ƒμ²˜λŸΌ λ³΄μž…λ‹ˆλ‹€.
이것이 도움이 될 수 μžˆλ‹€κ³  μƒκ°ν–ˆμŠ΅λ‹ˆλ‹€. μ•„λ¬΄νŠΌ 이 ν¬μŠ€νŒ…μ΄ λ§Žμ€ 도움이 λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

이 였λ₯˜λŠ” (μ–΄λ–€ μ΄μœ λ‘œλ“ ) IEκ°€ μΌμ‹œμ μœΌλ‘œ <textarea placeholder="{{'foo'}}"></textarea> 을 <textarea placeholder="{{ 'foo' }}">{{ 'foo' }}</textarea> 둜 λ³€ν™˜ν•˜κΈ° λ•Œλ¬Έμ— λ°œμƒν•©λ‹ˆλ‹€. μ΄λ ‡κ²Œ ν•˜λ©΄ {{ 'foo' }} TEXT_NODE에 μ•”μ‹œμ  ν…μŠ€νŠΈ 보간 μ§€μ‹œλ¬Έμ΄ μΆ”κ°€λ˜μ§€λ§Œ Angularκ°€ TEXT_NODE 값을 μ„€μ •ν•˜λ €κ³  ν•  λ•Œ IEμ—μ„œ λ‹€μ‹œ μ œκ±°ν–ˆμŠ΅λ‹ˆλ‹€.

그리고 λΆ€λͺ¨κ°€ μ—†λŠ” TEXT_NODE(예: parentlessTextNode.nodeValue = 'foo' )의 nodeValue λ₯Ό μ„€μ •ν•˜λ €κ³  ν•˜λ©΄ IEμ—μ„œ throwλ©λ‹ˆλ‹€.

λ‚˜λŠ” 이것이 Angular와 κ΄€λ ¨λœ λ¬Έμ œκ°€ μ•„λ‹ˆλΌκ³  μƒκ°ν•˜λ©° ( ng-attr-placeholder μ‚¬μš©ν•˜λŠ” 합리적인 ν•΄κ²° 방법이 μžˆλ‹€λŠ” 점을 κ³ λ €ν•˜μ—¬) λ¬Έμ„œν™”ν•˜κ³  계속 진행해야 ν•©λ‹ˆλ‹€.

이 버그 λ³΄κ³ μ„œ λŠ” 관련이 μžˆλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. 자리 ν‘œμ‹œμž 값이 <textarea> 의 λ‚΄μš©μœΌλ‘œ 남아 μžˆλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. 그듀은 (μ΅œμ†Œν•œ μ΅œμ‹  IE11μ—μ„œ) μˆ˜μ •ν–ˆμ§€λ§Œ 100%λŠ” μ•„λ‹™λ‹ˆλ‹€. 즉, 자리 ν‘œμ‹œμž ν…μŠ€νŠΈλŠ” μΌμ‹œμ μ΄κΈ°λŠ” ν•˜μ§€λ§Œ λ‚΄μš©μœΌλ‘œ λ‚˜νƒ€λ‚©λ‹ˆλ‹€.

제 κ²½μš°μ—λŠ” 자리 ν‘œμ‹œμžμ‘°μ°¨ μ—†μŠ΅λ‹ˆλ‹€. 이 <textarea ng-model='$parent.freetext.text' >{{dataobject.text}}</textarea> 와 λΉ„μŠ·ν•œ 것이 μžˆλŠ”λ° μ—¬μ „νžˆ 보간 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€. λͺ¨λ“  생각/해결책을 λŒ€λ‹¨νžˆ κ°μ‚¬ν•©λ‹ˆλ‹€. 참고둜 μ €λŠ” 1.5 λ²„μ „μ˜ angularjsλ₯Ό μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€...

@LotusShiv , ν…μŠ€νŠΈ μ˜μ—­μ— 값을 μž…λ ₯ν•˜μ§€ λ§ˆμ‹­μ‹œμ˜€. μ΄ˆκΈ°ν™”ν•˜κ³  μ‹Άλ‹€λ©΄ λͺ¨λΈμ— 값을 λŒ€μ‹  λ„£μ–΄μ£Όμ„Έμš”.

κ·Έλž˜μ„œ gkalpak - 제 κ²½μš°μ—λŠ” WebAPI 호좜의 κΈ°μ‘΄ 값에 λ°”μΈλ”©ν•˜κ³  μ‚¬μš©μžκ°€ ν…μŠ€νŠΈ μ˜μ—­μ„ νŽΈμ§‘ν•  수 μžˆλ„λ‘ ν•΄μ•Ό ν•©λ‹ˆλ‹€. λ”°λΌμ„œ ng-model 및 textarea κ°’ 섀정이 μžˆμŠ΅λ‹ˆλ‹€. 이제 κ·€ν•˜μ˜ μ‘λ‹΅μ—μ„œ μ΄ν•΄ν•œ 방식은 - WebAPI ν˜ΈμΆœμ—μ„œ μ˜€λŠ” 값을 $scope 개체 λ³€μˆ˜λ‘œ μ„€μ •ν•˜κ³  λ™μΌν•œ $scope 개체 λ³€μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ νŽΈμ§‘λœ λ‚΄μš©λ„ μ„€μ •ν•΄μ•Ό ν•œλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€. λ‚΄κ°€ 당신을 μ˜¬λ°”λ₯΄κ²Œ μ΄ν•΄ν•˜κ³  μžˆμŠ΅λ‹ˆκΉŒ? μ œμ•ˆ/해결책에 λŒ€ν•΄ λ‹€μ‹œ ν•œ 번 κ°μ‚¬λ“œλ¦½λ‹ˆλ‹€. μƒ˜ν”Œ μ½”λ“œλ„ κ°μ‚¬ν•©λ‹ˆλ‹€....

λ‚΄ 이전 μ˜κ²¬μ— λŒ€ν•œ 뢀둝, λ‚˜λŠ” gkalpak의 μ œμ•ˆμ—μ„œ λ‚΄κ°€ μ΄ν•΄ν•œ 것을 μ„€λͺ…ν•œ λŒ€λ‘œ ν–ˆκ³  νš¨κ³Όκ°€ μžˆμ—ˆμŠ΅λ‹ˆλ‹€. κ°μ‚¬ν•©λ‹ˆλ‹€ gkalpak , IE 11 μ—μ„œ 잘 μž‘λ™ν•©λ‹ˆλ‹€. λ§Žμ€ 마음의 고톡을 κ΅¬ν–ˆμŠ΅λ‹ˆλ‹€.... :) λ‹€λ₯Έ λ§Žμ€ 팁과 νŠΈλ¦­μ„ μ‹œλ„ν•œ ν›„ ....

μœ„μ˜ λ§Žμ€ μ‚¬λžŒλ“€μ΄ μ–ΈκΈ‰ν–ˆλ“―μ΄ 이 였λ₯˜λŠ” μ‹€μ œλ‘œ μ‚¬μš© 였λ₯˜μž…λ‹ˆλ‹€. 제 κ²½μš°μ—λŠ” ν…μŠ€νŠΈ μ˜μ—­μ— μ—†μ—ˆμ§€λ§Œ μœ„μ˜ μ„€λͺ…이 정말 도움이 λ˜μ—ˆμŠ΅λ‹ˆλ‹€. λͺ¨λ‘ κ°μ‚¬ν•©λ‹ˆλ‹€ :)
λ‚΄ νŠΉμ • 문제λ₯Ό λ„£κ³  같은 상황에 μžˆμ„ 수 μžˆλŠ” λ‹€λ₯Έ μ‚¬λžŒλ“€μ„ μœ„ν•΄ μ•„λž˜μ— μˆ˜μ •ν•©λ‹ˆλ‹€.

μž‘λ™ μ•ˆν•¨;
<a concat="[result.responsible.Contact.firstName, result.responsible.Contact.lastName]">{{responsibleFullName}}</a>
μΌν•˜κ³ μžˆλŠ”;
<a>{{result.responsible.Contact.firstName}} {{result.responsible.Contact.lastName}}</a>

λ˜ν•œμ΄ λ¬Έμ œκ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. μ €μ—κ²ŒλŠ” μ§€μ‹œλ¬Έμ—μ„œ template attrμ΄μ—ˆμŠ΅λ‹ˆλ‹€. template: '{{field}}' μ‚¬μš©ν•˜λ©΄ 이 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€. λ‚˜λ₯Ό μœ„ν•΄ λ‚˜λŠ” μš”μ†Œ HTML을 컴파일 된 λ‚΄μš©μœΌλ‘œ λŒ€μ²΄ν•˜κ³  μžˆμ—ˆκΈ° λ•Œλ¬Έμ— 해결책은 {{field}} template: '' 남겨 λ‘λŠ” 것이 μ—ˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 이것은 μ΄μƒν•œ 버그이며 IEμ—μ„œ λ””λ²„κΉ…ν•˜λŠ” 것은 고톡 μŠ€λŸ½μŠ΅λ‹ˆλ‹€.

rows 바인딩과 textarea 와 λ™μΌν•©λ‹ˆλ‹€. 예, IEλŠ” "λͺ¨λ“  μ˜ˆμ™Έ λ°œμƒ μ‹œ 쀑단" λͺ¨λ“œλ₯Ό 켜고 단계λ₯Ό 거쳐야 ν•  λ•ŒκΉŒμ§€ μ–΄λ–€ λ‹¨μ„œλ„ μ œκ³΅ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. 10μ–΅ 건의 첫 번째 μ˜ˆμ™Έ. μ˜ˆμ™Έμ˜ Angular 디버그 정보도 ꡬ성 μš”μ†Œμ— λŒ€ν•΄μ„œλ§Œ μ§€μ ν–ˆμ§€λ§Œ 무엇이 λ¬Έμ œμΈμ§€λŠ” μ§€μ ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. μ–΄μ¨Œλ“  바인딩을 [rows]="myRowsField"μ—μ„œ [attr.rows]="myRowsField"둜 λ³€κ²½ν•˜μ—¬ μˆ˜μ •ν–ˆμŠ΅λ‹ˆλ‹€.

@seckardt 당신은 λ‚˜μ˜ ν•˜λ£¨λ₯Ό λ§Œλ“­λ‹ˆλ‹€. λ‚΄ μ•„μ£Ό 였래된 ν”„λ‘œμ νŠΈ 쀑 ν•˜λ‚˜λŠ” μ—¬μ „νžˆ Angular1을 기반으둜 ν•˜λ©° 이 λ¬Έμ œμ— λŒ€ν•œ 해결책을 μ°ΎκΈ° μœ„ν•΄ κ³ κ΅°λΆ„νˆ¬ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. 정말 κ°μ‚¬ν•©λ‹ˆλ‹€.

"μ‰¬μš΄ ν•΄κ²° 방법"이 μžˆλ”λΌλ„ 였λ₯˜ λ©”μ‹œμ§€κ°€ 쑰금 더 도움이 λœλ‹€λ©΄ 훨씬 μ‰¬μšΈ κ²ƒμž…λ‹ˆλ‹€. λ‚˜λŠ” κ±°λŒ€ν•œ ν”„λ‘œμ νŠΈλ₯Ό 가지고 있고 _μ–΄λ”˜κ°€μ—_ 이 이쀑 보간이 μžˆμŠ΅λ‹ˆλ‹€. 이걸 μ–΄λ–»κ²Œ μ°Ύμ•„μ•Ό ν•˜λ‚˜μš”?

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰