node.js - Backbone : TypeError: Cannot call method 'apply' of undefined

标签 node.js backbone.js

我正在尝试将 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/

相关文章:

javascript - backbone.js 更改模型的 url 参数并且获取不更新获取的数据

javascript - 如何使这个发布/订阅代码更具可读性?

javascript - 如何向mongodb中插入数据

node.js - RealmDB 结果始终显示为空

javascript - Meteor 集合从服务器更新,未在客户端上进行响应式(Reactive)排序

java - 为什么 Tomcat 服务器没有最新的 HTML 更新?

javascript - Sequelize 如何正确创建具有约束的用户数据?

sql-server - MSSQL Nodejs 模块在执行存储过程时抛出无效时间

javascript - 如何在ajax调用上执行 Controller 方法?

backbone.js - 从集合中获取下一个和上一个模型