저는 Aurelia 프로젝트에 Fine-Uploader를 통합하기 위해 노력해 왔으며 최근의 도움 덕분에 진전을 이루었습니다. 문제는 멋지게 잘 작동하는 파인 업 로더 UI 코드는 템플릿 스크립트와 자바 스크립트 스크립트가 모두 동일한 파일에 포함되어야한다는 것입니다. 이것은 내가 원하는 이후, 문제를 만듭니다Fine-Uploader UI 템플릿을 별도의 JavaScript 파일과 결합하려면 어떻게해야합니까?
.html
과.js
파일이 필요합니다 유효한 아우렐 리아 모듈 (사용자 지정 요소)를 만듭니다.- 사용자 지정 요소를 사용하여 모듈성을 제공하므로 여러 시나리오에서 요소를 다시 사용할 수 있습니다.
.js
코드에 비즈니스 로직을 추가하십시오.
그래서 나는 내 케이크를 먹고 싶습니다. 아래의 자바 스크립트 코드는 정상적으로 작동하지만 UI 코드처럼 사용자 친화적이지 않은 업로드에 대한 지루한 버튼 만 제공합니다.
다음은 아주 간단한 fine-uploader.html
파일입니다 :
<template>
<div id="uploader" ></div>
<a href="#" class="btn btn-default" role="button">Upload image</a>
<template>
내 현재 fine-uploader.js
파일입니다
import 'fine-uploader/fine-uploader/fine-uploader-gallery.css';
import qq from 'fine-uploader/lib/core';
import {bindable, inject} from 'aurelia-framework';
import configOptions from './config-global';
@inject(Element)
export class FineUploader {
@bindable endpoint; // URL to upload to
@bindable params = {}; // Any additional upload params
@bindable uploaded =() => {}; // Uploaded callback for consumers
constructor(element) {
this.element = element;
}
attached() {
this.uploader = new qq.FineUploaderBasic({
debug: true,
button: this.element.children[0],
callbacks: {
onComplete: (id, name, response) => {
if (this.uploaded) {
this.uploaded(response);
}
}
},
request: {
endpoint: configOptions.baseUrl + this.endpoint,
customHeaders: {
'authorization': `Bearer ${localStorage.getItem("aurelia_id_token")}`
},
method: 'POST',
params: this.params
}
});
}
detached() {
// Apparently, no destroy() method
// https://github.com/FineUploader/fine-uploader/issues/1038
//this.uploader.reset();
}
}
가이 방식으로 기존 템플릿 스크립트를 사용할 수는? 나는 제대로로드하려면이 코드를 리팩토링에 운이 없었습니다. 이미 완성 된 바로 그 것을 재건하는 것은 끔찍한 낭비처럼 보입니다.