import {Component, EventEmitter, Input, OnDestroy, OnChanges, OnInit, Output, ApplicationRef, ChangeDetectorRef} from '@angular/core'; import { getDefaultExercises, getDefaultLetter } from '../bean/Exercises'; import { getDefaultTile } from '../bean/TitleBean'; @Component({ selector: 'app-form', templateUrl: './form.component.html', styleUrls: ['./form.component.css'] }) export class FormComponent implements OnInit, OnChanges, OnDestroy { // 储存数据用 saveKey = "YM5-10"; // 储存对象 item; gridStyle = { width: '50%' }; constructor(private appRef: ApplicationRef,private changeDetectorRef: ChangeDetectorRef) { } ngOnInit() { this.item = {}; this.item.title = getDefaultTile(); this.item.letterArr = []; // 获取存储的数据 ( window).courseware.getData((data) => { if (data) { this.item = data; } this.init(); this.changeDetectorRef.markForCheck(); this.changeDetectorRef.detectChanges(); this.refresh(); }, this.saveKey); } ngOnChanges() { } ngOnDestroy() { } init() { if (!this.item.title) { this.item.title = getDefaultTile(); } if (!this.item.letterArr) { this.item.letterArr = []; } if (!this.item.exercisesArr) { this.item.exercisesArr = []; } for (let i = this.item.exercisesArr.length; i < 4; ++i) { let exercises = getDefaultExercises(); this.item.exercisesArr.push(exercises); } } /** * 储存图片数据 * @param e */ onImageUploadSuccess(e, item, key) { item[key] = e.url; this.save(); } /** * 储存音频数据 * @param e */ onAudioUploadSuccess(e, item, key) { item[key] = e.url; this.save(); } /** * 储存数据 */ save() { ( window).courseware.setData(this.item, null, this.saveKey); this.refresh(); } /** * 刷新 渲染页面 */ refresh() { setTimeout(() => { this.appRef.tick(); }, 1); } addLetterItem(item) { let letter = getDefaultLetter(); item.letterArr.push(letter); item.letterArr = [...item.letterArr]; this.save(); } delLetter(item, index) { if (index !== -1) { item.letterArr.splice(index, 1); item.letterArr = [...item.letterArr]; this.save(); } } }