Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.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 主干目标模型=未定义_Javascript_Jquery_Backbone.js_Requirejs_Backbone Model - Fatal编程技术网

Javascript 主干目标模型=未定义

Javascript 主干目标模型=未定义,javascript,jquery,backbone.js,requirejs,backbone-model,Javascript,Jquery,Backbone.js,Requirejs,Backbone Model,我在主干网中遇到了这个问题,虽然所有脚本都已加载,但模型似乎未定义到主干网。 (我使用require加载主干和其他javascript文件) 因此,每当我执行collection.fetch时,firebug中都会出现以下错误: TypeError: targetModel is undefined 当我运行脚本时,它在此时保持不变: if (attrs instanceof Model) { id = model = attrs; } else { id = attrs[ta

我在主干网中遇到了这个问题,虽然所有脚本都已加载,但模型似乎未定义到主干网。 (我使用require加载主干和其他javascript文件)

因此,每当我执行collection.fetch时,firebug中都会出现以下错误:

TypeError: targetModel is undefined
当我运行脚本时,它在此时保持不变:

if (attrs instanceof Model) {
    id = model = attrs;
} else {
    id = attrs[targetModel.prototype.idAttribute];
} 
当我将鼠标悬停在targetModel上时,它会显示:未定义 它现在似乎不起作用了,我所做的唯一一件事就是更改了我的html模板,它只有在collection.fetch之后才能加载

你能帮帮我吗

这是我的模型:

var OF = OF || {};

OF.UsersMdl = Backbone.Model.extend({

    default: {

        username: '',
        mailinglist: '',
        email: ''

    },

    initialize: function() {

        //

    },

    result: {
        success: false,
        message: ''
    },

    validate: function(att) {

    }

});
以下是收藏:

var OF = OF || {};

OF.UsersCollection = Backbone.Collection.extend({

    initialize: function() {
        //
    },

   parse: function(data){
        return data["all-users"];
    },

    model: OF.UsersMdl,

    url: 'php/api/users'

});
最后但并非最不重要的一点是,具有所需部件的路由器:

goToUsers: function() {

    require(['./models/users', './views/users_view', './collections/user_collection'], function(UsersMdl, UsersView, UsersCollection) {

        OF.usersMdl = new OF.UsersMdl;
        OF.usersCollection = new OF.UsersCollection;
        OF.usersView = new OF.UsersView;

        //when the collection is fetched
        $.when(OF.usersCollection.fetch({
            data: {
                "admin": OF.login.attributes.admin,
                "session": OF.login.attributes.session
            },
            success: function(){
                //console.log(OF.usersCollection.length);
            }

        //then render the view
        })).then(function(){

            OF.usersView.render();
        }, 300);

    });

},
以下是获取将检索到的JSON:

{ “所有用户”: [ { “用户名”:“测试人员”, “邮件列表”:“1”, “电子邮件”:tester@tester.test" }, { “用户名”:“tester2”, “邮件列表”:“1”, “电子邮件”:tester2@tester.test" }, { “用户名”:“tester3”, “邮件列表”:“0”, “电子邮件”:tester3@tester.test" } ] }


提前感谢

我也犯了同样的错误,我的头撞了它好一阵子,因为主干对我来说是新的,这加剧了获取问题。不管怎样,我最终发现秩序很重要。啊!(我认为在使用CoffeeScript和“class”语句时不太明显。)对于我的一个模型,我在模型之前设置集合(多亏了Rails上Backbone.js书籍中的错误示例代码)。我把这一点颠倒过来,这个错误消失了,以揭示我真正的取回问题

类似地,您的
model:
属性可能由于此原因或其他原因无效,在以后尝试引用时未定义该属性


旁注:我在主干网1.0.0中也有类似的错误。当我升级到主干网1.1.0时,我在主干网代码的同一点上得到了这个准确的错误。

我也有同样的错误,并且在相当长的一段时间里我的头撞到了它,因为主干网对我来说是新的,这加剧了获取问题。不管怎样,我最终发现秩序很重要。啊!(我认为在使用CoffeeScript和“class”语句时不太明显。)对于我的一个模型,我在模型之前设置集合(多亏了Rails上Backbone.js书籍中的错误示例代码)。我把这一点颠倒过来,这个错误消失了,以揭示我真正的取回问题

类似地,您的
model:
属性可能由于此原因或其他原因无效,在以后尝试引用时未定义该属性


旁注:我在主干网1.0.0中也有类似的错误。当我升级到主干网1.1.0时,我在主干网代码中的同一点上得到了这个准确的错误。

哪里定义了
targetModel
?targetModel是主干网变量。所以我不给它下定义。除非你指的是集合中的“model:OF.UsersMdl”部分?我个人从未听说过“targetModel”默认变量,你能在描述它的地方发布一个指向文档的链接吗?看看第669行的backbone-1.1.0.js,它只是主干集合的一个内部:模型在u.extend(collection.prototype,Events,{model:model我看到这是backbone1.0.0中backbone1.1.0的新功能,'targetModel'是这样的:var model=new this.model(属性,选项);但是,这对我来说仍然是未定义的,因此它必须与调用集合中的模型有关。其中定义了
targetModel
吗?targetModel是一个主干变量。因此我不定义它。除非您指的是“model:OF.UsersMdl,”在集合中的一部分?我个人从未听说过“targetModel”默认变量,你能在描述它的地方发布一个指向文档的链接吗?看看第669行的backbone-1.1.0.js它只是主干集合的一个内部部分:模型在u.extend(collection.prototype,Events,{model:model我看到这是backbone1.0.0中backbone1.1.0的新功能,'targetModel'是这样的:var model=new this.model(属性,选项);但是,这对我来说仍然是未定义的,因此必须在集合中调用模型。在我的模型之前设置集合实际上是我的问题,谢谢提示!确实帮助了我:D在我的模型之前设置集合实际上是我的问题,谢谢提示!确实帮助了我:D