Backbone集合解析永远不会触发,collection.models应该有2个项目,但是为0

时间:2013-07-27 16:46:47

标签: backbone-events backbone.js-collections

这是我的MemberView.js ......

define([
    'jquery',
    'underscore',
    'backbone',
    'collections/MembersCollection',
    'text!templates/memTemplate.html'
], function($, _, Backbone, MembersCollection, memTemplate) {

    var MembersView = Backbone.View.extend({

        el: $("#page"),

        initialize: function() {
            var that = this;
            this.collection = new MembersCollection([]); 
            this.collection.fetch({ 
                success : function(collection, response, options) {
                    that.render();
                }, 
                error: function(collection, response, options) {
                    console.log('members fetch error: '+response.responseText);
                    alert(response.responseText);
                } 
            });
        },

        render: function() {
            var data = { members : this.collection.models };
            var compiledTemplate = _.template( memTemplate, data );
            this.$el.html( compiledTemplate ); 
        }

    });

    return MembersView;

});

这是我的MemberCollection.js ......

define([
    'jquery',
    'underscore',
    'backbone',
    'models/Member'
], function($, _, Backbone, Member) {

var MembersCollection = Backbone.Collection.extend({

    model: Member,

    initialize : function(models, options) { },

    url : '/modular-backbone/server/member',

    parse: function (response) {
        console.log("In Parse=" + response.length);
        return response;
    }
  });

  return MembersCollection;

});

从来没有“In Parse =?”在控制台中所以我不得不假设collection.parse没有激发。此外,如果我在view.render方法中放置一个中断,collection.models总是一个零长度数组,即使我可以在获取成功响应中清楚地看到2个成员记录。我错过了什么?

非常感谢您的建议: - )

1 个答案:

答案 0 :(得分:0)

...难以置信

我回去清理了几个js文件中的一堆注释掉的行,再次运行应用程序,现在它完美运行了。这毫无意义。