Mein Ziel ist es, einfach eine Zahl an ein Array-Modell anhängen. Dies sollte aufgrund des Iterators, den ich in der Vorlage verwendet habe, ein neues HTML-Element erzeugen.Warum wird das Ember-Modell nicht aktualisiert?
Meine Aktion wird aufgerufen, aber das Modell wird nicht wirklich aktualisiert.
Hier ist meine Verzeichnisstruktur:
- app
- routes
- compare.js
- templates
- compare.hbs
- application.hbs
- app.js
- index.html
- router.js
compare.hbs:
<div id="container">
<form method="post" name="login" {{action "submit" on="submit"}}>
<p>
Member ID
</p>
<p> {{input id="member-id" type="text"}} <input type="submit" value="Search"></p>
</form>
<div id="results">
{{#each model as |result|}}
<p>{{ result }}</p>
{{/each}}
</div>
</div>
router.js
import Ember from 'ember';
import config from './config/environment';
var Router = Ember.Router.extend({
location: config.locationType
});
Router.map(function() {
this.route('compare');
});
export default Router;
compare.js
import Ember from 'ember';
let results = [12, 34, 56];
export default Ember.Route.extend({
model: function() {
return results;
},
actions: {
submit: function() {
results.push(123);
this.get('model').push(123);
this.refresh();
}
}
});
Was ist das Problem?
es sagt 'this.get (...) pushObject' ist kein Funktion. – batman
Das andere Problem ist, wie Sie nach dem Modell fragen this.get ('model') gibt nur die Funktion zurück. Ich habe das Beispiel mit einer funktionierenden Version bearbeitet. –