我正在尝试将 json 文件加载到 Backbone Collection 中,但我不断遇到“TypeError:无法调用未定义的方法‘apply’”错误。
具体:
return Backbone.$.ajax.apply(Backbone.$, arguments);
TypeError: Cannot call method 'apply' of undefined
这是我的脚本:
var Backbone = require('backbone');
var PostModel = Backbone.Model.extend();
var PostCollection = Backbone.Collection.extend({
model: PostModel,
url: "data.json",
parse: function(data) {
return JSON.parse(data);
}
});
var posts = new PostCollection();
posts.fetch({reset: true});
posts.bind('reset', function () { console.log(posts); });
是因为异步吗?我该如何解决这个问题?
最佳答案
基本问题是 Backbone.$.ajax
是 未定义
,因此您无法使用 apply()
调用它
在没有看到更多代码的情况下,我无法确定为什么会这样,但我有根据的猜测是您正在使用像 Browserify 或 Webpack 这样的东西。
我认为,直到最新版本的 Backbone Backbone.$ 都没有在 commonJS(例如 Node)环境中自动引用 jQuery 或 Zepto——您必须手动附加它。确保您已安装 jQuery,然后尝试:
var Backbone = require('backbone')
var $ = require('jQuery');
Backbone.$ = $;
return Backbone.$.ajax.apply(Backbone.$, arguments);
关于node.js - Backbone : TypeError: Cannot call method 'apply' of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31772474/