Angular 1.x typescript "TypeError: "Uploader" must be an instance of FileUploader"
Angular 1.x typescript "TypeError: "Uploader" must be an instance of FileUploader"
我一直在尝试使用 angular-file-upload here https://github.com/nervgh/angular-file-upload 和打字稿,但我不断收到此错误:
TypeError: "Uploader" 必须是 FileUploader 的实例
我必须在实际的 angular-file-upload 上放置一个声明模块和导出命名空间才能使用模块(因为我们的框架就是这样构建的)但我似乎无法克服这个错误
不要担心模块初始化或命名空间名称等,我应该在此处放置占位符以不显示我们的实际代码。
代码如下:
/// <reference types="angular" />
/// <reference types="angular-ui-bootstrap" />
/// <reference types="angular-file-upload"/>
var bootbox: any;
module MyModule.module {
export class MyController {
static $inject = [
"$scope",
"$q",
"$state",
"FileUploader"
];
constructor(private scope: any,
private promiseService: angular.IQService,
private stateService: angular.ui.IStateService,
private uploader: angular.file.upload.FileUploader
)
{
this.uploader.url = "upload.php";
this.scope.uploader = this.uploader
}
(function () {
"use strict";
angular.module("myApp").controller("app.mymodule.controller", Namespace.MyApp.MyController);
})();
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<input type="file" nv-file-select uploader="vm.uploader" /><br />
<ul>
<li ng-repeat="item in uploader.queue">
Name: <span ng-bind="item.file.name"></span><br />
<button ng-click="item.upload()">upload</button>
</li>
</ul>
尝试用 new angular.file.upload.FileUploader()
实例化 FileUploader
我解决了我的问题,我没有正确使用接口。这是正确的代码:
constructor(private scope: any,
private fileUploaderFactory: angular.file.upload.FileUploaderFactory) {
this.scope.uploader = new fileUploaderFactory({
url: 'upload.php'
});
}
我一直在尝试使用 angular-file-upload here https://github.com/nervgh/angular-file-upload 和打字稿,但我不断收到此错误:
TypeError: "Uploader" 必须是 FileUploader 的实例 我必须在实际的 angular-file-upload 上放置一个声明模块和导出命名空间才能使用模块(因为我们的框架就是这样构建的)但我似乎无法克服这个错误
不要担心模块初始化或命名空间名称等,我应该在此处放置占位符以不显示我们的实际代码。
代码如下:
/// <reference types="angular" />
/// <reference types="angular-ui-bootstrap" />
/// <reference types="angular-file-upload"/>
var bootbox: any;
module MyModule.module {
export class MyController {
static $inject = [
"$scope",
"$q",
"$state",
"FileUploader"
];
constructor(private scope: any,
private promiseService: angular.IQService,
private stateService: angular.ui.IStateService,
private uploader: angular.file.upload.FileUploader
)
{
this.uploader.url = "upload.php";
this.scope.uploader = this.uploader
}
(function () {
"use strict";
angular.module("myApp").controller("app.mymodule.controller", Namespace.MyApp.MyController);
})();
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<input type="file" nv-file-select uploader="vm.uploader" /><br />
<ul>
<li ng-repeat="item in uploader.queue">
Name: <span ng-bind="item.file.name"></span><br />
<button ng-click="item.upload()">upload</button>
</li>
</ul>
尝试用 new angular.file.upload.FileUploader()
FileUploader
我解决了我的问题,我没有正确使用接口。这是正确的代码:
constructor(private scope: any,
private fileUploaderFactory: angular.file.upload.FileUploaderFactory) {
this.scope.uploader = new fileUploaderFactory({
url: 'upload.php'
});
}