javascript - internet - angularjs production
AngularJS en IE10+, área de texto con marcador de posición causa "Argumento no válido". (3)
Esto parece ser un problema con la forma en que estás vinculando al marcador de posición del elemento: extraño, lo sé.
Pude hacer que todo funcionara correctamente en IE usando la directiva ng-attr-placeholder lugar de enlazar directamente con el atributo en el DOM.
Por ejemplo, en lugar de:
<textarea placeholder="{{placeholderModel}}" ng-model="textareaModel"></textarea>
Prueba esto:
<textarea ng-attr-placeholder="placeholderModel" ng-model="textareaModel"></textarea>
Relacionado: Error de script AngularJS v1.2.5 con atributo de área de texto y marcador de posición utilizando IE11
Estoy obteniendo un " argumento no válido " cuando uso angularJS, TextArea con marcador de posición, en IE10 +.
Esto SÓLO sucederá cuando el nodo de área de texto se cierre con </textarea>
y no ocurrirá cuando cierre el área de texto ahora mismo.
Esto levantará la excepción "Argumento no válido":
<div ng-app>
<input ng-model="placeholderModel" type="text"/>
<textarea id="message" placeholder="{{placeholderModel}}" ng-model="textareaModel"></textarea>
</div>
Esto funcionará sin problemas:
<div ng-app>
<input ng-model="placeholderModel" type="text"/>
<textarea id="message" placeholder="{{placeholderModel}}" ng-model="textareaModel"/>
</div>
Ejecución de ejemplo aquí: http://jsfiddle.net/huecc/
Experimenté este error hoy y tropecé al azar con esta pregunta. Esto es lo que me lo resolvió.
Antes de:
<textarea placeholder="{[{ ''NAME'' | translate }]}" ng-model="name" name="name"></textarea>
Después:
<textarea placeholder="{[{ ''NAME'' | translate }]}" ng-model="name" name="name"> </textarea>
Note el poco espacio dentro del área de texto, eso es lo que realmente evitó que IE se quejara ...
Sé que esta pregunta ahora es bastante antigua, pero pensé que yo también me metería en mis pensamientos. Nos encontramos con este problema hace varios meses y tuvimos que buscar una solución, por lo que terminamos usando esta directiva para resolver el problema:
mod.directive(''placeHolder'', [
function(){
return {
restrict: ''A'',
link: function(scope, elem, attrs){
scope.$watch(attrs.placeHolder, function(newVal,oldVal){
elem.attr(''placeholder'', newVal);
});
}
};
}
]);
Y luego puedes usarlo en tus vistas:
<textarea place-holder="placeholderModel" ng-model="textareaModel"></textarea>
Una vez que lleguen los datos del modelo (posiblemente de forma asíncrona), la directiva agregará un atributo de placeholder
tradicional a <textarea>
y funcionará como usted quisiera.
No es la mejor solución, pero funciona. Espero que ayude.