2013-04-11 63 views
0

我有從服務器收集數據骨幹型號:骨幹提取過程

Job.Models.Response = Backbone.Model.extend({ 
    defaults: { 
    'authStatus': false, 
    'id': '1', 
    'name': 'name', 
    }, 

     urlRoot: '/static/js/public/json/' 
    }); 

我有數據-ID = 「從/靜態/ JS /公共/ JSON/ID」 按鈕。

Job.Views.Response = Backbone.View.extend({ 
    el: '.ra-response-button', 

    events: { 
     "click": "load" 
    }, 

    load: function() { 

     var info = this.$el.data(); 

     this.model.set({ id: info.id}); 
     this.model.fetch(); 

     if (this.model.attributes.authStatus === false) { 
      console.log('Register') 
     } 
     else { 
      console.log('Unregister') 
     } 
    } 

}); 

如果我CONSOLE.LOG我的模型後取出,其不要更新,但數據獲取成功。 這裏可能會出現什麼樣的問題?

在這裏,我的init我們的插件:

var responseModel = new Job.Models.Response; 
var response = new Job.Views.Response({ model: responseModel }); 

回答

0

我解決我的問題。最後查看。

Job.Views.Response = Backbone.View.extend({ 
    el: '.ra-response-button', 

    events: { 
     "click": "load" 
    }, 

    load: function() { 
     var that = this; 

     var info = that.$el.data(); 

     that.model.set({ id: info.id}); 
     that.model.fetch({ 
      success: function() { 
       if (that.model.attributes.authStatus === true) { 
        new Job.Views.ResponseForm({ model: that.model }) 
       } 

       else { 
        new Job.Views.ResponseAuth({ model : that.model }) 
       } 
      }, 

      error: function() { 
       alert('Error, repeat please.') 
      } 
     }); 
    } 
}); 
+0

很高興你知道了。您始終可以將成功和錯誤回調傳遞給fetch()和save(),但通常更強大的附加回調函數的方式是在獲取或保存完成時調用的,它利用了返回的Deferred對象。 fetch()和save()都返回一個jQuery延遲對象,允許你做''.when(that.model.fetch())。done(function(){/ *在這裏做某事* /});'' - 請記住,使用$ .when()允許您傳遞儘可能多的延遲對象,並等待它們全部完成。我經常使用它與主幹。 – 2013-04-11 05:50:22