我编写了一个角度控制器,它使用dropzone指令删除表单上的文件。我在我的控制器中添加了一个事件,当通过dropzone上传文件时,该事件会触发。但是,我需要将文件设置为主控制器中定义的变量,但范围已更改,因此未定义变量。这是代码的基础
module WU_TombstonesAdmin.controllers {
export class tombstonesEditController {
tombstoneId: number;
tombstone: ITombstone;
svc: WU_TombstonesAdmin.core.interfaces.ITombstonesAdminService;
static $inject = ['WU_TombstonesAdmin.core.services.TombstoneService',
'$routeParams', '$location'];
constructor(fs: WU_TombstonesAdmin.core.services.TombstoneService,
private $routeParams,
private $location) {
this.svc = fs;
if ($routeParams.ID) {
this.tombstoneId = $routeParams.ID;
}
if (this.tombstoneId == -1) {
this.initializeTombstone();
this.isAdding = true;
} else {
this.isAdding = false;
this.getTombstone();
}
}
fileUploadComplete = (file: any) => {
console.log(file.name);
//I need to set the tombstone.file to this uploaded file
//but the root tombstone file doesn't exists since the
//context is now the dropzone context/
}
}
}
那么,关于如何从fileUploadComplete事件设置根“墓碑”的任何想法?
更新
我最终没有使用dropzone指令,只是显式设置dropzone并将onComplete事件添加到获取模块范围的常规javascript函数中,将文件名设置为文件然后应用范围。
我仍然无法弄清楚如何从我的控制器内的事件中访问$ rootScope ...我真的更喜欢这样做。
答案 0 :(得分:0)
有关如何从该fileUploadComplete事件设置根“墓碑”的任何想法?
有很多方法可以做到这一点。一种方法是在tomsbtone
上使用$rootScope
并将其注入MainController以及指令中。
文档:https://docs.angularjs.org/api/ng/type/ $ rootScope.Scope
次要提示:您可能需要在fileUpload中调用$rootScope.$apply()
来触发角度摘要。