0

这是我的 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 方法中设置了一个中断,即使我可以在获取成功响应中清楚地看到 2 条成员记录,collection.models 始终是一个长度为零的数组。我错过了什么?

非常感谢您的建议:-)

4

1 回答 1

0

逆天...

我回去清理了几个 js 文件中的一堆注释掉的行,再次运行该应用程序,现在它运行良好。这根本没有意义。

于 2013-07-27T16:56:04.420 回答