valor referencia puede propiedad obtener nulo nula está establecer error definir definido javascript angular typescript

javascript - nulo - no se puede obtener la propiedad toggle de referencia nula o sin definir



Angular2 IE11 No se puede obtener la propiedad ''aplicar'' de referencia indefinida o nula (11)

Recibo el siguiente error después de actualizar mis paquetes angular2 a las siguientes versiones:

  • @ angular / común ":" ^ 2.3.1
  • @ angular / compilador ":" ^ 2.3.1
  • @ angular / núcleo ":" ^ 2.3.1
  • @ angular / formas ":" ^ 2.3.1
  • @ angular / http ":" ^ 2.3.1
  • @ angular / platform-browser ":" ^ 2.3.1 "
  • @ angular / platform-browser-dynamic ":" ^ 2.3.1
  • @ angular / plataforma-servidor ":" ^ 2.3.1
  • @ angular / enrutador ":" ^ 3.3.1

Error : Unable to get property ''apply'' of undefined or null reference

Solo recibo este error en IE11, en Chrome funciona bien.

Cavé un poco y la línea que causa el error está en el módulo angular / común:

function combine(options) { return (_a = ((Object))).assign.apply(_a, [{}].concat(options)); var _a; }

El archivo mecanografiado:

@angular/common/src/pipes/intl.ts línea 175

function combine(options: Intl.DateTimeFormatOptions[]): Intl.DateTimeFormatOptions { return (<any>Object).assign({}, ...options); }

El código que llama a la función de combine es @angular/common/src/pipes/intl.ts línea 48:

''yMMMdjms'': datePartGetterFactory(combine([

ACTUALIZAR

Parece que el error real es que el método .assign no está implementado en IE11


Angular 4 IE11 corregido por no poder obtener la propiedad ''aplicar''

Paso 1: Abra la aplicación / boot-browser-ts

Paso 2: agrega la siguiente línea

import ''core-js/client/shim'';


Angular depende de core-js . Por lo tanto, puede usar Object.assign polyfills de él:

import "core-js/client/shim"; // or load it before other angular2 & zone.js stuff import "zone.js"; import "reflect-metadata";


Es realmente molesto que el tutorial de Materiales Angulares no mencione este problema. Cualquiera que use IE11 y siga su tutorial llegará a este problema.

La solución, como han mencionado otros, es simplemente descomentar esas líneas en el archivo polyfills.ts su proyecto.

Pero realmente, esto debería haber sido mencionado en su tutorial.

Estoy pasando demasiadas horas buscando en Google para encontrar soluciones a estos problemas angulares ...


Para trabajar en el navegador IE

Paso 1: Ejecutar: npm i mdn-polyfills --save

Paso 2: abre polyfills.ts

Paso 3: Descomentar las importaciones en el archivo bajo / ** IE9, IE10 e IE11 requiere todos los siguientes polyfills. ** /


Parece que angular-cli (v1.0.0-rc.0) tiene un archivo llamado polyfills.ts en el que debes descomentar todos los polyfills necesarios para los navegadores, funciona bien para mí con cero instalación en IE-11.



Si está utilizando @angular/cli y tiene la intención de admitir IE9-11, puede editar el archivo src/polyfills.ts para habilitar los polyfills apropiados. Los polyfills requeridos ya están en el archivo, por lo que todo lo que necesita hacer es descomentarlos.

Por defecto, los proyectos @angular/cli se dirigen a los navegadores "perennes" fuera de la caja, lo que significa que IE no es compatible de inmediato, pero puede agregar soporte importando polyfills para las características que necesita.


Si está utilizando angular 4.xy encuentra este error, la solución descrita en https://github.com/angular/angular-cli/issues/6036 funcionó para mí.

Parece que hay un error con la versión 0.8.8 de "zone.js". Sin embargo, la degradación a la versión 0.8.4 resolvió el problema. Vea el vínculo para mas detalles.


Stas Berkov tiene razón, y su respuesta me llevó a una solución ligeramente diferente:

En mi encabezado donde cargo todos los scripts angulares incluí shim.js. (Paquete / minificado en la implementación). Nota importante: es fundamental que shim.js se cargue antes que zone.js, de lo contrario, obtendrá un error diferente.

<script src="/<my domain>/node_modules/core-js/client/shim.js"></script> <script src="/<my domain>/node_modules/zone.js/dist/zone.js"></script> <script src="/<my domain>/node_modules/reflect-metadata/Reflect.js"></script> <script src="/<my domain>/node_modules/systemjs/dist/system.src.js"></script> <script src="/<my domain>/systemjs.config.js"></script>


en su polyfills.ts agregue:

import ''core-js/es6/symbol''; import ''core-js/es6/object''; import ''core-js/es6/function''; import ''core-js/es6/parse-int''; import ''core-js/es6/parse-float''; import ''core-js/es6/number''; import ''core-js/es6/math''; import ''core-js/es6/string''; import ''core-js/es6/date''; import ''core-js/es6/array''; import ''core-js/es6/regexp''; import ''core-js/es6/map''; import ''core-js/es6/set'';


si alguien recibió este error en una plantilla angular dotnet core 2.0 usando IE, así es como lo resolví.

  1. instalar core-js

    npm install core-js --save

  2. Agregue esta línea en la parte superior de ClientApp / boot.browser.ts

    importar ''core-js / client / shim'';