2014-11-09 51 views
3

我有一個在加載頁面加載一些JSON數據的燼模板,有一些按鈕,當這些按鈕被點擊時,我需要做不同的JSON調用和更新模型。Ember更新模型後行動

在此代碼中一切正常,但在觸發操作並執行json調用後模型未更新。

我該如何解決?

App.DatRoute = Ember.Route.extend({ 
    model: function(parms){ 
     return Em.RSVP.hash({ 
      datam : Ember.$.getJSON('URL') 
     });  
    }, 
    afterModel: function(){ 
     $(document).attr('title', 'Title'); 
    }, 
    renderTemplate: function() { 
     this.render(); 
     this.render('fter', { into: 'outlet', outlet: 'fter' }); 
    }, 
    actions :{ 
    action: function(){ 
     return Em.RSVP.hash({ 
      datam : Ember.$.getJSON('URL', {data}) 
     }); 
    } 
} 
}); 

感謝

回答

4

因爲你沒有做任何更新模型。 Ember對行動的回報價值無關緊要,無論是承諾還是其他方面。你需要把控制器上的行動,並把數據從Ajax調用回來設置模式:

action: function() { 
    var self = this; 
    Ember.$.getJSON('URL', {data}) 
     .then(function(result) { 
      self.set('model', result); 
     }); 
} 

或我的風格,完全等價

action: function() { 
    var set = this.set.bind(this, 'model'); 
    Ember.$.getJSON('URL', {data}).then(set); 
}