我在 Umbraco 7.0.3 的自定义属性编辑器中使用角度文件上传。我正在关注本教程以创建编辑器。
我对 Angular 很陌生,所以我的问题对你们中的一些人来说可能微不足道:我无法尽快解决对控制器中文件上传服务的依赖关系。我的 HTML 模板如下所示:
<div ng-controller="MyCustomController">
<input type="file" ng-file-select="onFileSelect($files)" multiple>
</div>
控制器函数需要 $upload 服务作为参数,但是我在函数的开头注入了该服务:
angular.module("umbraco")
.controller("MyCustomController", function ($scope, assetService, $upload) {
assetsService
.load([
"/App_Plugins/MyCustomPlugin/angular-file-upload.min.js",
])
.then(function () {
alert('upload service loaded');
});
$scope.onFileSelect = function ($files) {
alert('file selected');
}
});
所以,这种方式肯定是不对的。我试图在控制器初始化之前加载上传服务,但是它是异步加载的,因此无论如何都无法在控制器之前定义该服务。
如何仅在加载上传服务后声明我的控制器函数,或者如何获取对服务的引用而不是参数?
谢谢,
编辑
到目前为止,我发现的唯一解决方案是将实际的文件上传代码库包含到自定义属性编辑器的控制器中。为了简单起见,我将这篇论文作为我自己的代码库的起点。但是,在这种情况下,我仍在寻找加载外部模块的“正确”方式。