Modell nachladen mit Ember Data
Ich versuche, die Umfrage, für die mehr Daten über das dokumentierte Modell.reload () - Funktion
App.ModelViewRoute = Ember.Route.extend({
actions: {
reload: function() {
this.get('model').reload();
}
}
});
Aber ich bin immer eine Fehlermeldung...
undefined is not a function TypeError: undefined is not a function
Gibt es einen besseren Weg, dies zu tun, wie es scheint, ich kann nicht auf das Modell auf diese Weise von der route?
Hier ist der router
App.Router.map(function() {
this.route('video', { path: '/videos/:video_id' });
});
Hier ist die route
App.VideoRoute = Ember.Route.extend({
model: function(params) {
return this.store.find('video', params.video_id);
},
actions: {
reloadModel: function() {
//PROBLEM HERE
//this.get('model').reload();
Ember.Logger.log('reload called!');
}
}
});
Hier ist das Modell
App.Video = DS.Model.extend({
title: DS.attr('string'),
status: DS.attr('string')
});
Und die Vorlagen
<script type="text/x-handlebars" data-template-name="application">
<h1>Testing model reloading</h1>
{{#link-to "video" 1}}view problem{{/link-to}}
{{outlet}}
</script>
<script type="text/x-handlebars" data-template-name="video">
<h1>Video</h1>
<h2>{{title}}</h2>
{{model.status}}
<p><button {{action 'reloadModel'}}>Reload model</button></p>
</script>
Habe ich eine jsbin das Problem hier:
http://jsbin.com/wofaj/13/edit?html,js,output
Ich kann wirklich nicht verstehen, warum der laden gibt mir diese Fehlermeldung. Jede Beratung wäre sehr geschätzt werden.
Dank
Du musst angemeldet sein, um einen Kommentar abzugeben.
Seit
model
existiert bereits als ein Haken auf Ember.Route, können Sie nicht bekommen, die als eine Eigenschaft.Stattdessen können Sie Folgendes tun:
Technisch könnten Sie tun
this.get('currentModel').reload();
auch, aber das ist nicht dokumentiert und wird wahrscheinlich nicht vorhanden sein in der Zukunft.reload()
nicht mehr existiert? Ich bin immer Fehlerthis.modelFor(...).reload is not a function
modelFor
ist eine Methode, die Strecke Klasse, aber in diesem Fall ist nicht verwandt mit dem, was OP ist, Fragen überDen
refresh
Methode der Strecke tun würde, was Sie nachAPI-docs
Den route-Modell Funktion bietet einen Haken zum laden der controller-Daten. Es ist ein bestimmter Abschnitt auf der ember guide.
1) Wenn Sie möchten, um auf Ihre Inhalte zugreifen, wie es sein würde:
2) reload ist ein Verfahren verfügbar, der ember-data-Objekte. In Ihrem Beispiel, Sie laden ein js-Objekt ({ id:2, title:"Test-video title 2", status:"Download"}).