私はemberを初めて使い、2.4で学習の練習として非常に単純なアプリケーションを構築しようとしています。私は、インデックスページに表示されるタスクのリストを持っています。そして私は削除するためにそれぞれに行動を添付しました。そして、ページの一番下に1つのフォーム行を作成して、saveTaskを実行します。インデックスページからレコードを削除する
私は1つのインデックスコントローラを持っています。 インデックスルートが定義されていません。 app/models/task.jsのタスクの1つのモデル
私のsaveTask機能が動作しています。しかし、私はdeleteTaskを動作させることができません。私は正しく削除したいオブジェクトを渡していないことを知っています。返されるエラーはUncaught TypeError: undefined is not a function index.js:26 deleteTask
です。
誰かが正しい構文を私に説明できますか?あなたが実際に記録されている、task
にthis
にdeleteTask
でdestroyRecord
を呼び出していない
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}}
とコントローラ
app/controllers/index.js
import Ember from 'ember';
export default Ember.Controller.extend({
actions: {
deleteTask(task) {
this.destroyRecord();
this.transitionTo('index');
}
}
});
あなたの文脈では 'this'はコントローラで、コントローラには' destroyRecord'メソッドがありません。どのレコードを削除しようとしていますか?それは現在のモデルですか? –