Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.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
Javascript TypeError:创建附件时在forEach处非法调用_Javascript_Angularjs_Coffeescript_Paperclip_Ng File Upload - Fatal编程技术网

Javascript TypeError:创建附件时在forEach处非法调用

Javascript TypeError:创建附件时在forEach处非法调用,javascript,angularjs,coffeescript,paperclip,ng-file-upload,Javascript,Angularjs,Coffeescript,Paperclip,Ng File Upload,试图创建关联模型的附件,但出现错误,不知道如何调试它 firefox称“forEach”调用的对象没有实现接口FormData chrome-TypeError:forEach at copy的非法调用== (forEach(目的地、功能(值、键) 返回副本(源、emptyObject、stackSource、stackDest); ) 使用angularjs rails资源创建附件 形式 模态控制器 angular.module('modals').controller 'ModalCont

试图创建关联模型的附件,但出现错误,不知道如何调试它

firefox称“forEach”调用的对象没有实现接口FormData

chrome-TypeError:forEach at copy的非法调用==

(forEach(目的地、功能(值、键)

返回副本(源、emptyObject、stackSource、stackDest); )

使用angularjs rails资源创建附件

形式

模态控制器

angular.module('modals').controller 'ModalController', [
  '$scope', '$uibModalInstance', '$injector', 'resource', 'actionName',
  ($scope, $uibModalInstance, $injector, resource, actionName) ->
    ctrl = this

    resourceName = resource.constructor.config.name
    $scope[_.lowCamelize(resourceName)] = resourceCopy = angular.copy(resource)

    ...

    @create = ->
      ctrl.$busy = true
      # here is failure on create
      resourceCopy.create().then((createdResource) ->
        $uibModalInstance.close(createdResource)
      ).finally ->
        ctrl.$busy = false
   
    ....
工厂

angular.module('railsResource').factory 'RailsResourceNotificatorMixin', [
  '$rootScope', ($rootScope) ->

    resourceName = (constructor) ->
      _.lowCamelize(constructor.config.name)

    class RailsResourceNotificatorMixin
      @extended: (Resource) ->
        
        ...

        Resource::create = ->
          debugger

          # super is Resource.__super__.create.apply(this, arguments).then(function(resource) {
          # here is failure
          super.then (resource) ->
            $rootScope.$broadcast("#{resourceName(Resource)}-created", resource)
            resource

事实证明,在angularjs rails资源中,gem angular.copy不希望复制带有附件的对象

暂时的解决办法是覆盖

data = angular.copy(this, {})


这不是RubyonRails的问题。
resourceCopy =
Object { fileName: "sample.pdf", fileSize: 8573, company: {…}, primaryRelation: "company", companyId: 121, name: "sdfsf", file: {"$upload": Object { "$$state": {…}, success: success(fn), state: "done-ok", … } id: "3243365014180998090"} }
{
  "id": 201,
  "ticketId": 133,
  "creatorId": 63,
  "importedFromMyCustomer": false,
  "myCustomerCompanyid": null,
  "myCustomerCaseId": null,
  "myCustomerNoteSeqNbr": null,
  "content": "Veniam asperiores officia numquam...",
  "deletedAt": null,
  "createdAt": "2020-10-20T16:54:18.000+03:00",
  "updatedAt": "2020-10-23T10:24:59.000+03:00",
  "updaterId": 1,
  "isModified": true,
  "attachments": [
    {
      "fileName": "sample.pdf",
      "fileSize": 8573,
      "file": {
        "$upload": {
          "$$state": {
            "status": 1,
            "value": {
              "data": {
                "id": "2810473018465773169"
              },
              "status": 201,
              "config": {
                "method": "POST",
                "transformResponse": [
                  null
                ],
                "url": "/uploads",
                "file": {},
                "headers": {
                  "Accept": "application/json, text/plain, */*",
                  "X-Requested-With": "XMLHttpRequest",
                  "X-XSRF-TOKEN": "3fCWvLQU5rcMpc/kQJvKLsrTJeVtdV8bk2w2/lmynHEekEdBY+GqfPNUkanxBz1tE+AP4qgTGBEbr8UaAx/FOA=="
                },
                "data": {}
              },
              "statusText": "Created"
            },
            "processScheduled": false
          },
          "state": "done-ok",
          "result": {
            "$$state": {
              "status": 1,
              "value": {
                "id": "2810473018465773169"
              },
              "processScheduled": false
            }
          },
          "uploadedFile": {
            "id": "2810473018465773169"
          }
        },
        "id": "2810473018465773169"
      }
    },
    {}
  ],
  "creator": {
    "id": 63,
    "firstName": "Coralie",
    "lastName": "Brekke",
    "username": "user_pedro_62",
    "email": "seymour.bergnaum@murazik.net",
    "lastSignInAt": null,
    "currentSignInAt": null,
    "teamId": 22,
    "name": "Coralie Brekke",
    "avatarUrl": "/avatars/small/missing.png",
    "teamName": "Prosacco Group 22",
    "enabled": true,
    "phone": null
  },
  "$editing": true
}

data = angular.copy(this, {})
data = JSON.parse(JSON.stringify(this))