import { Component, EventEmitter, Input, OnDestroy, OnChanges, OnInit, Output, ApplicationRef, ChangeDetectorRef } from '@angular/core'; @Component({ selector: 'app-form', templateUrl: './form.component.html', styleUrls: ['./form.component.css'] }) export class FormComponent implements OnInit, OnChanges, OnDestroy { // 储存数据用 saveKey = "test_0011"; // 储存对象 item; constructor(private appRef: ApplicationRef, private changeDetectorRef: ChangeDetectorRef) { } ngOnInit() { this.item = { wordItem: [], rightWord: 'a', rightNum: 6, optionNum: 11 }; let stingList = 'abcdefghijklmnopqrstuvwxyz'; stingList.split('').forEach(str => { this.item.wordItem.push({ word: str, audio: str }) }); // 获取存储的数据 (<any>window).courseware.getData((data) => { if (data) { this.item = data; } this.init(); this.changeDetectorRef.markForCheck(); this.changeDetectorRef.detectChanges(); this.refresh(); }, this.saveKey); } ngOnChanges() { } ngOnDestroy() { } init() { } /** * 储存图片数据 * @param e */ onImageUploadSuccess(e, key) { this.item[key] = e.url; this.save(); } /** * 储存音频数据 * @param e */ onAudioUploadSuccess(e, key) { this.item[key] = e.url; this.save(); } /** * 储存数据 */ save() { this.item.rightNum = Math.max(1, this.item.rightNum); this.item.optionNum = Math.max(1, this.item.optionNum); this.item.optionNum = Math.min(12, this.item.optionNum); this.item.rightNum = Math.min(this.item.rightNum, this.item.optionNum); (<any>window).courseware.setData(this.item, null, this.saveKey); this.refresh(); } /** * 刷新 渲染页面 */ refresh() { setTimeout(() => { this.appRef.tick(); }, 1); } }