Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.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
Google app engine &引用;加:型号“;未触发主干关系_Google App Engine_Backbone.js_Backbone Relational - Fatal编程技术网

Google app engine &引用;加:型号“;未触发主干关系

Google app engine &引用;加:型号“;未触发主干关系,google-app-engine,backbone.js,backbone-relational,Google App Engine,Backbone.js,Backbone Relational,我刚刚开始处理主干关系,我面临“HasMany”案例的问题 首先是模型: var Word = Backbone.RelationalModel.extend({ urlRoot: '/test/api/word', idAttribute: '_id' }); var List = Backbone.RelationalModel.extend({ urlRoot: '/test/api/list', idAttribute: '_id', r

我刚刚开始处理主干关系,我面临“HasMany”案例的问题

首先是模型:

    var Word = Backbone.RelationalModel.extend({
    urlRoot: '/test/api/word',
    idAttribute: '_id'
});

var List = Backbone.RelationalModel.extend({
    urlRoot: '/test/api/list',
    idAttribute: '_id',
    relations: [{
        type: Backbone.HasMany,
        key: 'words',
        relatedModel: 'Word',
        reverseRelation: {
            key: 'list',
            includeInJSON: '_id'
        }
    }]
});
“列表”模型的视图,其中“单词”应按如下方式呈现:

    var ListWordsView = Backbone.View.extend({
    tagName: 'div',


    initialize: function(){
        _.bindAll(this,'render', 'renderWords');
        //alert("its clicked!," + this.model.get('desc'));
        this.model.bind('change',this.render);
        this.model.bind('reset',this.render);
        this.model.bind('add:words',this.renderWords);
    },

    renderWords: function(word){
        alert("hello it's there!" + word.get("word_name"));
        var wordView = WordView({ model: word });
        this.$("#words_list").append(wordView.render());
    },
    render: function(){
        try{
        $("#list_box.title_name").html(this.model.get('list_name'));
        this.model.toJSON();
        //this.model.get('words').each(renderWords);
        //this.setContent();
        alert(JSON.stringify(this.model));
        }
        catch(e){
            alert("error! : " + e.message);
        }
    } 
});
因此,问题在于调用此ListWordsView时(在完成List的fetch()之后),不会触发“add:words”,因此不会显示这些单词


尝试了一些方法,但没有奏效。我呈现列表本身或其他内容的方式有问题吗?

this.model.bind('add:words',this.renderWords)就可以工作。否则,模型将显式地提供该事件。顺便问一下,你可以在初始化函数中转储
this.model.toJSON()
,并添加到你的问题中。model.toJSON()的转储示例给出了这个-
{“列表名”:“矿山”,“id”:32,“单词”:[{“定义”:“陡坡”,“id”:21,“单词名”:“上升”}],“描述”:“随机列表”}
。另外,
add:words
什么时候被触发?你能试试这个
this.model.get(“words”).bind('add:words',this.renderWords)吗您使用的是什么版本的backbone.js?它似乎不起作用。我使用的是0.9.2版