2015-07-30 13 views
6

Chcę przeładować mojego modelu w moim kontrolera, a ja przeczytać dokument z hereember model.reload() nie jest funkcją?

więc zdefiniowane działania: przeładować w moim kontrolera i drogi obu, takie jak:

reload:function(){ 
    this.get('model').reload(); 
    } 

kiedy wyzwalany akcja używa this.send('reload'), pojawia się błąd this.get(...).reload is not a function, więc źle zrozumiałem ten dokument?

+0

spróbować 'this.controller.get („Wzór”) reload();' – Jeff

+0

pokazać swój pełny trasy i kontrolera kod i wysłać żaru i żaru. wersja -data, proszę – artych

+0

DEBUG: Ember: 1.13.3 DEBUG: Ember danych: 1.13.5 DEBUG: jQuery: 1.11.3 DEBUG: Ember Proste Auth: 0.8.0 DEBUG: Ember Proste Auth Torii: 0.8. 0 – TommyLike

Odpowiedz

1

Spróbuj tego:

import Ember from 'ember'; 

export default Ember.Route.extend({ 
actions: { 
reload: function() { 
    this.controller.get('model').reload().then(function(model) { 
    // do something with the reloaded model 
    }); 
    } 
} 
}); 

A w kontrolerze:

import Ember from 'ember'; 

export default Ember.Controller.extend({ 
actions: { 
    reload_model: function() { 
    this.send('reload'); 
    } 
    } 
}); 
+0

I próbowałem, ale to nie działa – TommyLike

+0

dzwonisz gdzieś " akcja reload_model'? – Akis

7

Sprawdź, czy dany model nie jest zbiorem. Możesz przeładować tylko rekord. Jeśli model jest zbiorem należy wykonać następujące czynności:

reload:function(){ 
    this.get('model').forEach(function(record){ 
     record.reload(); 
    }); 

    }