Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将FineUploader与Typescript一起使用(Angular2项目)_Angular_Typescript_Fine Uploader - Fatal编程技术网

将FineUploader与Typescript一起使用(Angular2项目)

将FineUploader与Typescript一起使用(Angular2项目),angular,typescript,fine-uploader,Angular,Typescript,Fine Uploader,在我的angular2项目中使用fineuploader库时,我遇到了一个问题。如果不直接在索引html文件中使用fineuploader.js,我找不到实现它的方法。是否有Typescript的实现示例?谢谢你 ***Gulpfile*** gulp.task('restore:fine-uploader', function () { gulp.src([ 'node_modules/fine-uploader/**/*.*' ]).pipe(gu

在我的angular2项目中使用fineuploader库时,我遇到了一个问题。如果不直接在索引html文件中使用fineuploader.js,我找不到实现它的方法。是否有Typescript的实现示例?谢谢你

***Gulpfile***


    gulp.task('restore:fine-uploader', function () {
    gulp.src([
        'node_modules/fine-uploader/**/*.*'
    ]).pipe(gulp.dest(libs + 'fine-uploader'));
    });

    gulp.task('restore',
    [
    'restore:core-js',
    'restore:zone.js',
    'restore:reflect-metadata',
    'restore:systemjs',
    'restore:rxjs',
    'restore:angular-in-memory-web-api',
    'restore:angular',
    'restore:bootstrap',
    'restore:ng2-pagination',
    'restore:fine-uploader'
    ]);

***Systemjs.js***

    (function (global) {
    System.config({
        baseURL: "/",
        paths: {
            // paths serve as alias
            'npm:': './libs/'
        },
        // map tells the System loader where to look for things
        map: {
            // our app is within the app folder
            app: 'app',
            // angular bundles
            '@angular/core': 'npm:@angular/core/bundles/core.umd.js',
            '@angular/common': 'npm:@angular/common/bundles/common.umd.js',
            '@angular/compiler': 'npm:@angular/compiler/bundles/compiler.umd.js',
            '@angular/platform-browser': 'npm:@angular/platform-browser/bundles/platform-browser.umd.js',
            '@angular/platform-browser-dynamic':
                'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js',
            '@angular/http': 'npm:@angular/http/bundles/http.umd.js',
            '@angular/router': 'npm:@angular/router/bundles/router.umd.js',
            '@angular/forms': 'npm:@angular/forms/bundles/forms.umd.js',
            // other libraries
            'rxjs': 'npm:rxjs',
            'ng2-pagination': 'npm:ng2-pagination',
            'fine-uploader': 'npm:fine-uploader',
            'angular-in-memory-web-api': 'npm:angular-in-memory-web-api'
        },
        // packages tells the System loader how to load when no filename and/or no extension
        packages: {
            app: {
                main: './main.js',
                defaultExtension: 'js'
            },
            rxjs: {
                defaultExtension: 'js'
            },
            'angular-in-memory-web-api': {
                main: './index.js',
                defaultExtension: 'js'
            },
            fineUploader: {
                main: 'fine-uploader/fine-uploader.min',
                defaultExtension: 'js'
            },
}
    });
})(this);
****upload.component.ts****

import { Component } from '@angular/core';
import { FineUploader } from 'fineUploader';
@Component({
    selector: 'app-upload',
    templateUrl: './app/upload/upload.component.html'
})
export class UploadComponent {

}

在systemjs.config中添加以下内容

'fineUploader': 'npm:fine-uploader'

在组件中添加

import {FineUploader} from 'fineUploader';
有关更多信息,您可以添加
fine uploader.d.ts
找到
好的,我想我明白了。FineUploader是一个JS库,没有我们可以使用的Typescript文件。我们无法将库直接导入到TS文件。解决方案是声明一个很好的上传器对象,比如
declare var qq:any我们可以在我们的导出类中使用。

使用
声明变量qq:any不是正确的方法。这就是我所做的工作:

步骤零:
angular cli.json
文件中包含CSS和JS文件

"styles": [
    "../node_modules/fine-uploader/fine-uploader/fine-uploader-gallery.min.css"
],
"scripts": [
    "../node_modules/fine-uploader/fine-uploader/fine-uploader.min.js"
],
第一步: 在组件文件的顶部添加
//

第二步:声明以下变量:

uploader: FineUploader.qq;
uiOptions: FineUploader.UIOptions;
coreEvents: FineUploader.CoreEvents;
第三步:
ngOnInit

this.uiOptions = {
    element: document.getElementById('qq-template'),
    template: "qq-template"
};
this.uploader = new qq.FineUploader(this.uiOptions);
第四步:
COMPONENT\u NAME.COMPONENT.HTML
文件中添加模板HTML。您可以在
node\u modules/fine uploader/fine uploader/templates/
中找到HTML。可以在上找到正式解决方案。

您只需通过npm安装Fine Uploader,并在typescript文件中进行如下初始化(对于UI模式和传统端点):


请注意,精细上传器模板不必位于index.html文件的
标记中。在任何组件的
标记中添加一个带有特定id的模板就足够了。

您使用的是哪个库/插件?我使用的是FineUploader(),我想在angular2/Typescript项目中实现它,但是我没有发现任何例子,你可以阅读和更新的努力,以创建和捆绑一个TS定义文件与一个发布版本的FineUploader.这就是我所做的导入{FineUploader}从'FineUploader';但是它找不到模块!我已经通过npm install FineUploader安装了FineUploader,使用gulpfile,我将库放在我的/lib文件夹中使用它。还有什么我需要做的吗?我找不到模块,因为在FineUploader文件夹中找不到ts文件。。。fineUploader和typescript一起工作吗?fineUploader的ts可以在网站上找到,你知道这是不是一个官方版本吗?tyno&
无需
因为这是您可以自己编写的定义文件。我已尝试将其导入我的typscript文件,但模块找不到。。。如何导入此.d.ts文件?谢谢。我正在使用“declare var qq:any”并像Fine Uploder那样在他们的文档中管理我的对象。在第三步之前一切正常,但在第四步,我们无法添加Fine uploader提供的模板。它使用
标记和从COMPONENT\u NAME.COMPONENT.html标记的更多角度条带
this.uiOptions = {
    element: document.getElementById('qq-template'),
    template: "qq-template"
};
this.uploader = new qq.FineUploader(this.uiOptions);
import { FineUploader } from 'fine-uploader';

let uploader = new FineUploader({...})