小编And*_*nna的帖子

Backbone.js - 未捕获TypeError:对象[object Object]没有方法'apply'

我是Backbone.js的新手.对于试验/初始开发,我在标签的一个页面上有所有东西,但我开始将代码分离成一个单独的.js文件.在我这样做后,我收到来自路由器的错误.

未捕获的TypeError:对象[object Object]没有方法'apply'

这是我的路由器代码:

       var AppRouter = new Backbone.Router.extend({
            routes: {
                ":uuid": "details"
            },
            details: function (uuid) {
                // load details
                new DetailView({id: uuid, el: $('#detailView')});
            }
        });

        var appRouter = new AppRouter;
Run Code Online (Sandbox Code Playgroud)

我在上面的文件标记中加载了模型/视图,但即使我注释掉文件的标记或清空文件,它仍然会显示错误.

抛出错误的行是 var appRouter = new AppRouter;

我是在做路由器代码的错误.

谢谢!!安德鲁

javascript backbone.js

8
推荐指数
1
解决办法
4028
查看次数

Mongoose - 将参数传递给预保存 - 在更新保存中不起作用

我正在尝试传递一个参数来在猫鼬模型上预先保存中间件,例如:

subject.save({ user: 'foo', correlationId: 'j3nd75hf...' }, function (err, subject, count) {
    ...
});
Run Code Online (Sandbox Code Playgroud)

它被传递给两个预保存中间件

第一的:

schema.pre('save', function (next) {
    // do stuff to model

    if (arguments.length > 1)
        next.apply(this, Array.prototype.slice.call(arguments, 1));
    else
        next();
});
Run Code Online (Sandbox Code Playgroud)

然后:

schema.pre('save', function(next, metadata, callback) {
    // ...
    // create history doc with metadata
    // ...

    history.save(function(err, doc) {
        if(err) throw err;

        if (typeof metadata == 'object')
            next(callback);
        else
            next();
    });
});
Run Code Online (Sandbox Code Playgroud)

它不适用于保存从数据库中获取的现有模型,但它适用于新创建的模型。

如果我删除参数,它确实有效。

所以如果我打电话...

subject.save(function (err, subject, count) {
    ...
});
Run Code Online (Sandbox Code Playgroud)

...它确实有效。

看起来回调从未真正回调。所以也许它假设第一个参数是 save() …

mongoose mongodb node.js

2
推荐指数
1
解决办法
7397
查看次数

标签 统计

backbone.js ×1

javascript ×1

mongodb ×1

mongoose ×1

node.js ×1