Backbone Model的fetch()不返回所需的Object

时间:2013-11-19 16:07:56

标签: javascript backbone.js

我的应用有一个银行帐户视图。当用户单击某个帐户时,此帐户的完整信息将显示在弹出窗口中。 点击后我的应用程序打开一个弹出窗口,向Backbone-Hibernate-MySQL发送GET请求,我的Java Controller类尝试返回一个对象,我在Eclipse控制台中看到了包含其所有属性的对象,但是我的应用程序收到了只有1个参数的对象 - 'id'。其余的在哪里? 任何帮助高度赞赏。

var DetailedInfo = Backbone.View.extend({
baseUrl: 'employee/accounts/',
    el: $("#employeeTemplate"),
    template: _.template($("#showinfotemplate").html()),
    events: {
      "click .btn-success#change_status_btn": "accept",
      "click .btn-danger#cancel": "cancel"
  },
   cancel: function(e) {...},

   accept: function(e) {...},

   render: function(id) {
       var detailedAccount = new Account ( {id: id} );
       detailedAccount.fetch();
       var element = this.template(detailedAccount.toJSON());
       $(this.el).html(element);
       return this;
   }
});

1 个答案:

答案 0 :(得分:0)

.template将在.fetch detailedAccount数据之前调用。 .template必须等到获取成功。

在渲染功能中尝试:

var that = this;    
detailedAccount.fetch({success:function(){
    var element = that.template(detailedAccount.toJSON());
    $(that.el).html(element);
});