2014-11-09 49 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); 
}