2017-12-11 15 views
0

問題Javascriptを〜SailsJsアクションは

ので、私は前に削除の確認を持ってCRUDアプリケーションを編集していますが定義されており、私はそれを行うにはjavascript関数を作成したが、私は私のCMDで、次のエラーを取得していませんそして、コード

error: Sending 500 ("Server Error") response: ReferenceError:
C:\Users\Micha\Documents\intelligente-vraagbaak\views\answer\show.ejs:176
174| if (c){
175| console.log("done");
176| window.location.href = "action/delete/<%=action.id %>"
177| }
178|
179| else{

action is not defined

「ショー」ページこれは、

削除が起こるはずのコードの一部です。
<td class="actions" style="display: block; margin: 0 auto"> 
         <a href="/actionbrand/create/<%= action.id %>" 
          class="btn btn-sm btn-icon btn-pure btn-default on-default" 
          data-toggle="tooltip" 
          data-original-title="Toevoegen"><i class="icon wb-plus" aria-hidden="true"></i></a> 
         <a href="/action/show/<%= action.id %>" 
          class="btn btn-sm btn-icon btn-pure btn-default on-editing" 
          data-toggle="tooltip" 
          data-original-title="Bekijk"><i class="icon wb-eye" aria-hidden="true"></i></a> 
         <a href="/action/edit/<%= action.id %>" 
          class="btn btn-sm btn-icon btn-pure btn-default on-default" 
          data-toggle="tooltip" 
          data-original-title="Bewerk"><i class="icon wb-edit" aria-hidden="true"></i></a> 
         <form id="deleteAction" action="javascript:Delete()" method="POST"> 
          <button type="submit" 
            class="btn btn-sm btn-icon btn-pure btn-default on-default" 
            data-toggle="tooltip" 
            data-original-title="Verwijder"><i class="icon wb-trash" aria-hidden="true"></i> 
          </button> 
         </form> 
        </td> 
       </tr> 
       <% }) %> 
       </tbody> 
      </table> 
      </div> 
     </div> 
    </div> 
</div> 
<script> 
    function Delete(){ 
     let c = confirm('U staat op het punt een actie te verwijderen, klik op "ok" om hier mee door te gaan'); 
     if (c){ 
      console.log("done"); 
      window.location.href = "action/delete/<%=action.id %>" 
     } 

     else{ 
      console.log("failed") 
      window.location.href = "/answer/show/<%= answer.id %>" 
     } 
    } 
</script> 

私は

を得ることはありません私はすべてこのページの上に変数アクションを使用しているので、私はこのエラーを取得しないとエラーはありませんどのようなので、今まで私はそれを使用する場合私の機能ではエラーが出ます。私は間違って何をしていますか?任意の助けいいだろう(私の英語のため申し訳ありませんが、私はネイティブスピーカーではないよ)

EDIT「アクション」

アクションは、私が持っているすべてのアクションの別名であることから来てされています

<tr><td>...</td></tr>

<%- answer.actions.length === 0 ? "<tr><td>No results</td></tr>" : null %> 
      <% _.each(answer.actions, action => { %> 
+0

は、ループ内で何かを宣言する何か「​​... 'ですか? – MjZac

+0

@MjZac質問を更新しました –

+1

あなたは '<% }) %> 'でループを終了しています。したがって、 'action'は利用できません。 – MjZac

答えて

1

@mjZac上記のforeachループで定義されていることは、彼のコメントに右である - それはループの外で定義されていないので、actionだけ、側にあなたのループを定義しています。

あなたの必要とするのは、アクションに(またはただaction.id)情報をあなたのメソッドに渡すことです。あなたが設定されている方法で、私はそれをあなたのメソッド呼び出しにパラメータとして追加するだけでそれを行うことができると思います。

<% _.each(answer.actions, action => { %> 
    <td class="actions" style="display: block; margin: 0 auto"> 
     <!-- some other stuff... --> 
     <form class="deleteAction" action="javascript:Delete(<%= action.id %>)" method="POST"> 
      <button type="submit" class="btn btn-sm btn-icon btn-pure btn-default on-default" data-toggle="tooltip" data-original-title="Verwijder"><i class="icon wb-trash" aria-hidden="true"></i></button> 
     </form> 
    </td> 
<% }) %> 

<script> 
    function Delete(actionId){ 
     let c = confirm('U staat op het punt een actie te verwijderen, klik op "ok" om hier mee door te gaan'); 
     if (c){ 
      console.log("done"); 
      window.location.href = "action/delete/" + actionId; 
     } 
    } 
</script> 

、テンプレートは各trDelete()メソッド呼び出しにアクションIDを追加し、要約すると、スクリプトはidが発生することを利用し、それは純粋なJavaScriptの(関与なしテンプレートタグ)内のURLです。