2016-04-10 8 views
0

私はemberを初めて使い、2.4で学習の練習として非常に単純なアプリケーションを構築しようとしています。私は、インデックスページに表示されるタスクのリストを持っています。そして私は削除するためにそれぞれに行動を添付しました。そして、ページの一番下に1つのフォーム行を作成して、saveTaskを実行します。インデックスページからレコードを削除する

私は1つのインデックスコントローラを持っています。 インデックスルートが定義されていません。 app/models/task.jsのタスクの1つのモデル

私のsaveTask機能が動作しています。しかし、私はdeleteTaskを動作させることができません。私は正しく削除したいオブジェクトを渡していないことを知っています。返されるエラーはUncaught TypeError: undefined is not a function index.js:26 deleteTaskです。

誰かが正しい構文を私に説明できますか?あなたが実際に記録されている、taskthisdeleteTaskdestroyRecordを呼び出していない

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'); 
    } 
    } 
}); 
+0

あなたの文脈では 'this'はコントローラで、コントローラには' destroyRecord'メソッドがありません。どのレコードを削除しようとしていますか?それは現在のモデルですか? –

答えて

1

。私はそれがすべてだと思う。

デベロッパーツールでは、スローするコードの行を見ることができるはずです。私はそれがthis.destroyRecord();だと賭ける。

+0

私はそれをタスクに変更すると、エラーが 'Mirage:Emberアプリケーションが '/ tasks/2'を削除しようとしましたが、この要求を処理するために定義されたルートがありませんでした。このパスと一致するルートをmirage/config.jsファイルに定義します。名前空間を追加することを忘れましたか? 「どのコネクターが紛失していますか? – manisha

+0

ミラージュで 'tasks'と' delete'メソッドのルートを定義しませんでした。それはあなたのAPIを嘲笑するだけの問題です。 [ミラージュのドキュメント](http://www.ember-cli-mirage.com/)をご覧ください。それ以上の問題については、関連していないと思われるので、別の質問を開いてください。 – jelhan

関連する問題