0

私が経験している状況は、フェッチが正常に機能していることです。コレクションからモデル変数にアイテムを割り当てるメソッドにステップインするか、1〜2秒間一時停止すると、バックボーンコレクションのデータを確認できます。すべてが順調です:コード行this.memberが入力されます

this.member = this.members.get(1);

。コードを実行させるだけでは、nullモデルをビューに渡すことになります。何が欠けているのかわかりません。コレクションにアクセスする前に、コレクション内のデータをバインドする必要がありますか?私はバックボーンに恋をしようとしていますが、これまでのところ、彼女は残酷な愛人でした...

`

//create the namespace
var Endeavor = {
    Models: {},
    Collections: {},
    Views: {},
    Templates: {}
};

Endeavor.Models.Member = Backbone.Model.extend({
    idAttribute: "Id"
});

Endeavor.Collections.Members = Backbone.Collection.extend({
    model: Endeavor.Models.Member,
    url: "Http://localhost:60000/api/members/" + "1", // $.cookie('UserId') 
    initialize: function () {
        console.log("Members collections init");
    }
});



Endeavor.Views.MemberView = Backbone.View.extend({
    id: "memberForm",
    template: "#memberTemplate",
    initialize: function () {
        console.log('init member view');
    },
    render: function () {
        console.log('memberView render called');
        console.log(this.model.toJSON());
        var html = $(this.template).tmpl();
        $(this.el).html(html);
        $("#Name").text = this.model.Name;
    }
});

jQuery(document).ready(function () {
    // router
    Endeavor.Router = Backbone.Router.extend({
        routes: {
            "": "lists",
        },

        lists: function () {
            this.members = new Endeavor.Collections.Members();
            this.members.fetch();

            this.member = this.members.get(1);

            var memberView = new Endeavor.Views.MemberView({ model: this.member });
            memberView.render();
            $("#content").html(memberView.el);
        }
    });
    // populate local variables
    var appRouter = new Endeavor.Router();
    Backbone.history.start();
});

`。

4

1 に答える 1

2

Members.fetch非同期呼び出しです。イベントでrender表示するか、メソッドでコールバックを渡すか、または を呼び出してください。多くの異なるオプションがあります。members resetsuccessfetchthis.members.fetch({async: false})

于 2012-10-09T15:32:31.733 に答える