如何将 serializeObject() 与 require.js 一起使用 错误:无法读取未定义的属性“fn”

How to use serializeObject() with require.js Error: Cannot read property 'fn' of undefined

本文关键字:读取 未定义 fn 属性 错误 serializeObject 一起 js require      更新时间:2023-09-26

如何使用下面的脚本,该脚本将jquery $.fn.serializeObject()与require.js一起使用?

我收到以下错误:

捕获的类型错误:无法读取未定义的序列化对象的属性"fn".js:(匿名功能)

   $.fn.serializeObject = function() {
      var o = {};
      var a = this.serializeArray();
      $.each(a, function() {
          if (o[this.name] !== undefined) {
              if (!o[this.name].push) {
                  o[this.name] = [o[this.name]];
              }
              o[this.name].push(this.value || '');
          } else {
              o[this.name] = this.value || '';
          }
      });
      return o;
    };

这是我的视图保存函数给出错误:

 var participantDetails = $(ev.currentTarget).serializeObject();

它是否需要我错过的其他依赖关系?

这是我的主要.js:

require.config({
  shim: {
   "jquery": {
        exports: '$'
    },
    underscore: {
      exports: '_'
    },
    backbone: {
      deps: ['underscore', 'jquery'],
      exports: 'Backbone',
      init: function (_, $) { Backbone.$ = $; return Backbone; }
    },
    backbone_tastypie: {
      deps: ['backbone',  'underscore', 'jquery'],
      attach: "Backbone"
    },
     serialize: {
      deps: ['jquery']
      //exports: 'jQuery.fn.serializeObject'
    }
  },
  paths: {
    jquery: '//cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min',
    underscore: '//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.5.2/underscore-min',
    backbone: '//cdnjs.cloudflare.com/ajax/libs/backbone.js/1.1.0/backbone-min',
    backbone_tastypie: '/static/js/libs/backbone-tastypie',
    serialize: '/static/js/libs/serializeObject',
    text: 'text',
    templates: '/static/'
  }
});
require([
  'app'
], function(App){
  App.initialize();
});

你在定义一个模块吗?您需要:

define([
  'jquery'
],
etc