Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.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 从JSON文件呈现主干集合未完全工作_Javascript_Json_Backbone.js_Collections_Mustache - Fatal编程技术网

Javascript 从JSON文件呈现主干集合未完全工作

Javascript 从JSON文件呈现主干集合未完全工作,javascript,json,backbone.js,collections,mustache,Javascript,Json,Backbone.js,Collections,Mustache,我到处寻找答案,解释为什么应用程序没有从我的JSON文件中呈现我的列表集合,但我就是弄不明白 所以我所要做的就是从我的JSON文件中呈现一个列表——非常简单,但就是不起作用 非常感谢您的帮助。我已经发布了我的代码,并把一个版本放在一个网站上 通过控制台运行代码,我可以在DOM中看到json数据,但我看不到任何数据 谢谢 App.js: // MODELS var EventModel = Backbone.Model.extend({ initialize: fu

我到处寻找答案,解释为什么应用程序没有从我的JSON文件中呈现我的列表集合,但我就是弄不明白

所以我所要做的就是从我的JSON文件中呈现一个列表——非常简单,但就是不起作用

非常感谢您的帮助。我已经发布了我的代码,并把一个版本放在一个网站上

通过控制台运行代码,我可以在DOM中看到json数据,但我看不到任何数据

谢谢

App.js:

    // MODELS
    var EventModel = Backbone.Model.extend({
        initialize: function() {
            this.on('change', function() {
                eventView.render();
            });
        },
        defaults: {
            "name": "No title entered",
            "description": "No description entered",
            "startdate": "No start date"
        }
    });
    var eventModel = new EventModel();

    // COLLECTIONS
    var EventCollection = Backbone.Collection.extend({
        model: EventModel,
        url: 'data/getEvents.json',
        initialize: function() {
            this.on('reset', function() {
                eventListView.render();
            }),
            console.log('running init function for EventCollection');
            this.fetch({async: false});
            console.log(this.toJSON()); //This will log the loaded collection
        },
        parse: function(data) {
            console.log('running parse');
            return _.map(data, _.identity);
        },
        reset: function(models, options) {
            if (options && options.parse) {
                delete options.parse;
                models = this.parse(models);
            }
            return Backbone.Collection.prototype.reset.call(this, models, options);
        }
    });
    var eventCollection = new EventCollection();


    // VIEWS
    var EventView = Backbone.View.extend({
        tagName: 'li',
        className: 'single-model',
        render: function() {
            var el = this.el;
            $(el).html(Mustache.render($('#stream_getEvents').text()));
            return this;
        }
    });

    var EventListView = Backbone.View.extend({
        el: $('#list'),
        tagName: 'ul',
        id: 'list-view',
        initalize: function() {
            this.collection.on('add', this.addOne, this);
            this.collection.on('reset', this.addAll, this);
        },
        render: function() {
            this.addAll();
        },
        addOne: function(eventModel) {
            var eventView = new EventView({model: eventModel});
            this.$el.append(eventView.render().el);
        },
        addAll: function() {
            this.collection.forEach(this.addOne, this);
        }
    });


    // rendering
    var eventView = new EventView({model: eventModel});
    var eventListView = new EventListView({collection: eventCollection});


    function event(){
        eventView.render();
        eventListView.render();
        $('#list').html(eventListView.$el.html());
        console.log('clicked button');
    }

    $('.button-getEvents').click(event);

我认为您缺少胡子模板渲染中的模型

$(el).html(Mustache.render($('#stream_getEvents').text(), this.model));

谢谢你,乔纳森。我确实在模板渲染中添加了模态(哎呀,愚蠢的错误),但是我仍然看不到数据。。控制台中也没有错误。很难判断,因为在检索getEvents.json时,jsbin会报告404个错误。大概getEvents.json的格式是正确的?如果在事件函数中打印以控制台集合,会得到什么。尝试插入
console.log(eventCollection)作为
function event()
对象{length=3,models=[3],_byId={…},more…}的第一行-这就是它打印出来的内容。。json url为(缺少…/mpl/getEvents.json)。。。我注意到,运行我的本地版本时,我在控制台中看到了数据,但通过我的js bin,我在控制台中什么也看不到..是的,jsbin抛出了一个域访问错误“No”access Control Allow Origin…,简言之,这意味着它无法访问您的域数据。假设您的数据请求良好。您是否尝试过通过EventListView进行跟踪以查看实际发生的情况。。。将console.log放在每个函数(render、addOne、addAll等)的开头,以查看视图是否正在尝试呈现集合。