首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何预装文件blueimp -file-upload angular版本?

如何预装文件blueimp -file-upload angular版本?
EN

Stack Overflow用户
提问于 2017-12-16 04:28:06
回答 1查看 276关注 0票数 0

当尝试加载以前从服务器上传的文件时,会产生以下错误。

代码语言:javascript
复制
// Load existing files:
$.ajax({
    url: $('#fileupload').fileupload('option', 'url'),
    dataType: 'json',
    context: $('#fileupload')[0]
}).done(function (result) {
    $(this).fileupload('option', 'done').call(this, $.Event('done'), {result: files});
});

//Exception
jquery.fileupload-angular.js:130 Uncaught TypeError: Cannot read property '$apply' of undefined
    at done (jquery.fileupload-angular.js:130)
    at <anonymous>:2:47

以下代码片段位于将$scope放入文件数据的FileUploadController中。

代码语言:javascript
复制
$element.fileupload(angular.extend(
  {scope: $scope},
  fileUpload.defaults
)).on('fileuploadadd', function (e, data) {
    data.scope = $scope;
EN

回答 1

Stack Overflow用户

发布于 2017-12-19 01:52:44

因此,一个"hacky“的解决方案是将一个服务注入到该指令的控制器中,并调用generateFileObject(files)方法。

代码语言:javascript
复制
.directive('ngUploadForm', [function () {
  return {
    restrict: 'E',
    templateUrl: 'templates/uploadform.html',
    scope: {
      allowed: '@',
      url: '@',
      autoUpload: '@',
      sizeLimit: '@',
      ngModel: '=',
      name: '@'
    },
    controller: ['$scope', '$element', 'fileUpload','FileService', function ($scope, $element, fileUpload, FileService)

[other code]

// pre-populate file list
FileService.getSavedFiles()
  .done(function(files){
    generateFileObject(files)
  });

FileService代码(基本jquery ajax)

代码语言:javascript
复制
this.getSavedFiles = function(){
    return $.ajax({
      url: this.getFileUrl(),
      dataType: 'json'
    });
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47839437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档