programing

IE10+의 AngularJS, 자리 표시자가 있는 텍스트 영역 "잘못된 인수"입니다.

cafebook 2023. 9. 25. 23:05
반응형

IE10+의 AngularJS, 자리 표시자가 있는 텍스트 영역 "잘못된 인수"입니다.

IE10+에서 angularJS, 자리 표시자가 있는 텍스트 영역을 사용할 때 "잘못된 인수"가 표시됩니다.

이는 텍스트 영역 노드가 다음과 같이 닫힐 때만 발생합니다.</textarea>텍스트 영역을 닫을 때는 발생하지 않습니다.

그러면 "Invalid argument" 예외가 발생합니다.

<div ng-app>
    <input ng-model="placeholderModel" type="text"/>
    <textarea id="message" placeholder="{{placeholderModel}}" ng-model="textareaModel"></textarea>
</div>

문제없이 작동합니다.

<div ng-app>
    <input ng-model="placeholderModel" type="text"/>
    <textarea id="message" placeholder="{{placeholderModel}}" ng-model="textareaModel"/>
</div>

실행 예제: http://jsfiddle.net/huecc/

이것은 당신이 요소의 자리 표시자에 구속력을 가지는 방식의 문제인 것 같습니다. 이상합니다.

DOM의 속성에 직접 바인딩하는 대신 ng-atttract-placeholder 명령을 사용하여 IE에서 모든 것이 올바르게 작동하도록 할 수 있었습니다.

예를 들어, 다음 대신:

<textarea placeholder="{{placeholderModel}}" ng-model="textareaModel"></textarea>

시도해 보기:

<textarea ng-attr-placeholder="placeholderModel" ng-model="textareaModel"></textarea>

관련: IE11을 사용하여 텍스트 영역 및 자리 표시자 특성이 있는 AngularJS v1.2.5 스크립트 오류

저는 오늘 이 오류를 경험했고 무작위로 이 문제를 발견했습니다.이것이 나를 위해 해결해 준 것입니다.

이전:

<textarea placeholder="{[{ 'NAME' | translate }]}" ng-model="name" name="name"></textarea>

이후:

<textarea placeholder="{[{ 'NAME' | translate }]}" ng-model="name" name="name"> </textarea>

문자 영역 안의 작은 공간을 주목하세요 그게 IE가 불평하는 것을 막았던 겁니다

이 질문이 이제 꽤 오래되었다는 것을 알지만, 저도 제 생각을 집어넣어야겠다고 생각했습니다.우리는 몇 달 전에 이 문제에 부딪혀 해결책을 찾아야 했기 때문에 결국 이 지침을 사용하여 문제를 해결했습니다.

mod.directive('placeHolder', [
    function(){
        return {
            restrict: 'A',
            link: function(scope, elem, attrs){
                scope.$watch(attrs.placeHolder, function(newVal,oldVal){
                    elem.attr('placeholder', newVal);
                });
            }
        };
    }
]);

그런 다음 보기에서 사용할 수 있습니다.

<textarea place-holder="placeholderModel" ng-model="textareaModel"></textarea>

모델 데이터가 도착하면(비동기식일 가능성도 있음) 지침에 따라 기존의 데이터가 추가됩니다.placeholder에 귀속시키다<textarea>당신이 원하는 대로 될 겁니다

최고의 해결책은 아니지만 효과는 있습니다.도움이 되길 바랍니다.

언급URL : https://stackoverflow.com/questions/20224698/angularjs-on-ie10-textarea-with-placeholder-cause-invalid-argument

반응형