Ich versuche, für weitere Daten abfragen, die dokumentiert model.reload() -FunktionModell Nachladen mit Ember Daten
App.ModelViewRoute = Ember.Route.extend({
actions: {
reload: function() {
this.get('model').reload();
}
}
});
aber ich bin eine Fehlermeldung bekommen sagen ...
undefined is not a function TypeError: undefined is not a function
Gibt es einen besseren Weg dies zu tun, es scheint, als ob ich auf diese Weise nicht von der Route auf das Modell zugreifen kann? Hier
ist der Router
App.Router.map(function() {
this.route('video', { path: '/videos/:video_id' });
});
Hier wird 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 wird 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>
Ich habe eine jsbin der Ausgabe hier gemacht:
http://jsbin.com/wofaj/13/edit?html,js,output
Ich kann nicht wirklich verstehen, warum die Reload mir diesen Fehler gibt. Jeder Rat würde sehr geschätzt werden.
Dank
das funktioniert perfekt, danke! – Chris
Ist die Funktion 'reload()' nicht mehr vorhanden? Ich bekomme den Fehler 'this.modelFor (...).reload ist keine Funktion. – Sisir
'modelFor' ist eine Methode der Route Klasse, aber in diesem Fall nicht mit dem, was OP nach – anthonygore