#angular #typescript #semantic-ui #ng2-semantic-ui
#angular #typescript #семантический пользовательский интерфейс #ng2-semantic-ui
Вопрос:
<sui-accordion-panel>
должен расширяться в IE11, но Object doesn't support property or method 'animate'
вместо этого появляется ошибка в окне консоли IE.
Шаги
Я добавил <sui-accordion>
вложенный <sui-accordion-panel>
в одно из представлений. Код выглядит следующим образом:
//... other components
<div [hidden]="!isCreateNewFlag">
<sui-accordion>
<sui-accordion-panel [isOpen]="false">
<div title>
<i class="dropdown icon"></i>
<b>Additional options</b>
</div>
<div content>
<p>Upload initial answer file. (Select the template first.)</p>
<app-file-uploader acceptedFormat=".anx" [isDisabled]="fileUploaderDisabled" [isFileValid]="isAnswerFileValid"
(fileUploadedEvent)="onFileUploadedEvent($event)"></app-file-uploader>
</div>
</sui-accordion-panel>
</sui-accordion>
</div>
</app-form-modal>
То <app-file-uploader>
, что я создал, здесь не проблема — даже если я удалю его из приведенного выше кода, у меня такая же проблема с компонентом accordion.
Ожидаемый результат
На скриншоте показано ожидаемое поведение в веб-браузере Chrome.
Фактический результат
Функция расширения не работает в IE11:
Версия
Вот как выглядит мой package.json:
{
"name": "hd",
"version": "0.0.0",
"license": "MIT",
"scripts": {
"ng": "ng",
"start": "ng serve",
"generate-api-client": "call ../../Build/GenerateApiClient.bat",
"predevbuild": "cpx ./src/styles/theme.config ./node_modules/semantic-ui-less/",
"devbuild": "ng build --output-hashing none",
"prebuild": "cpx ./src/styles/theme.config ./node_modules/semantic-ui-less/",
"build": "ng build --prod --output-hashing none",
"watch": "ng build --output-hashing none --watch",
"test": "ng test --sourceMap=false --watch false",
"test-watch": "ng test --sourceMap=false",
"lint": "ng lint",
"e2e": "ng e2e"
},
"private": true,
"dependencies": {
"@angular/animations": "6.0.7",
"@angular/common": "6.0.7",
"@angular/compiler": "6.0.7",
"@angular/core": "6.0.7",
"@angular/forms": "6.0.7",
"@angular/http": "6.0.7",
"@angular/platform-browser": "6.0.7",
"@angular/platform-browser-dynamic": "6.0.7",
"@angular/router": "6.0.7",
"core-js": "2.5.7",
"date-fns": "1.29.0",
"element-resize-detector": "1.1.14",
"lodash-es": "4.17.10",
"ng2-semantic-ui": "0.9.7",
"rxjs": "6.2.1",
"semantic-ui-calendar": "0.0.8",
"semantic-ui-less": "2.3.3",
"zone.js": "0.8.26"
},
"devDependencies": {
"@angular-devkit/build-angular": "0.6.8",
"@angular/cli": "6.0.8",
"@angular/compiler-cli": "6.0.7",
"@angular/language-service": "6.0.7",
"@types/element-resize-detector": "1.1.0",
"@types/jasmine": "2.8.8",
"@types/jasminewd2": "2.0.3",
"@types/lodash-es": "4.17.0",
"@types/node": "10.5.3",
"codelyzer": "4.4.2",
"cpx": "1.5.0",
"jasmine": "3.1.0",
"jasmine-core": "3.1.0",
"jasmine-spec-reporter": "4.2.1",
"karma": "2.0.4",
"karma-chrome-launcher": "2.2.0",
"karma-cli": "1.0.1",
"karma-coverage-istanbul-reporter": "2.0.1",
"karma-jasmine": "1.1.2",
"karma-jasmine-html-reporter": "1.2.0",
"less": "2.7.3",
"protractor": "5.3.2",
"ts-node": "7.0.0",
"tslint": "5.10.0",
"typescript": "2.7.2"
}
}
Есть ли у вас какие-либо идеи, что может быть не так, и есть ли какое-либо решение этой проблемы?
Приветствия
Ответ №1:
Используется <sui-accordion>
Web Animations API
, который поддерживается не всеми браузерами. Они сообщают об этом в своих документах здесь:
-
https://edcarroll.github.io/ng2-semantic-ui/#/modules/accordion
-
https://edcarroll.github.io/ng2-semantic-ui/#/modules/collapse
Чтобы лучше решить эту проблему в angular, я предлагаю добавить это в ваш polyfill.ts
файл (возможно, он уже там прокомментирован):
import 'web-animations-js';
Чтобы это сработало, вам нужно запустить: npm install --save web-animations-js
.
Вы можете проверить живой пример здесь:
https://stackblitz.com/edit/angular-stack-55650439?file=src/polyfills.ts