Ich bin neu in Ember und versuche, eine sehr einfache App als Lernübung in 2.4 zu bauen. Ich habe eine Liste von Aufgaben, die auf der Indexseite angezeigt werden. Und ich habe Aktionen an jeden zum Löschen angehängt. Und haben Sie eine Formularzeile am unteren Rand der Seite mit einer Aktion zum Speichern von Aufgaben.Lösche einen Datensatz von der Indexseite
Ich habe einen Index-Controller. Keine definierten Indexrouten. Ein Modell für Aufgaben unter app/models/task.js
Meine Funktion zu saveTask funktioniert. Aber ich kann die deleteTask nicht funktionieren lassen. Ich weiß, dass ich das Objekt, das ich löschen möchte, nicht richtig übergebe. Der zurückgegebene Fehler ist Uncaught TypeError: undefined is not a function index.js:26 deleteTask
.
Kann mir jemand die richtige Syntax erklären?
app/templates/index.hbs
{{#each model as |task| }}
<div class="form-horizontal form-group row">
<div class="col-xs-4 col-md-3">
{{input type="text" value=task.taskname class="form-control"}}
</div>
<div class="col-xs-3 col-md-2">
{{input type="text" value=task.startdate class="form-control"}}
</div>
<div class="col-xs-3 col-md-2">
{{input type="text" value=task.enddate class="form-control"}}
</div>
<div class="col-xs-3 col-md-2">
{{input type="text" value=task.duration class="form-control"}}
</div>
<div class="col-xs-3 col-md-2">
{{input type="text" value=task.banding class="form-control"}}
</div>
<div class="col-xs-2 col-md-1">
<button type="button" class="btn btn-default btn-sm" aria-label="Remove task" {{action 'deleteTask' task}}>
<span class="glyphicon glyphicon-remove" aria-hidden="true"></span>
</button>
</div>
</div>
{{/each}}
und die Steuerung
app/controllers/index.js
import Ember from 'ember';
export default Ember.Controller.extend({
actions: {
deleteTask(task) {
this.destroyRecord();
this.transitionTo('index');
}
}
});
'dies' in Ihrem Kontext ist der Controller und der Controller hat keine' destroyRecord' Methode, welchen Datensatz möchten Sie löschen? Ist es das aktuelle Modell? –