2015-12-14 20 views
11

私は単純なビューを生成するために、フェニックスのgen.HTMLに建てを使用しましたが、それは [削除]リンクが機能していないフェニックス

<%= link "Delete", to: event_path(@conn, :delete, event), method: :delete, data: [confirm: "Are you sure?"], class: "btn btn-danger btn-xs" %> 

を働いていないですし、それはそれはちょうどに#を追加すると仮定のようにページ上に見えますアドレス

生成された構造:

<form action="/event/1" class="link" method="post"> 
    <input name="_method" type="hidden" value="delete"> 
    <input name="_csrf_token" type="hidden" value="BwUSGQcDO1MwPzw0HBgqLnshHn8HNgAAnCTjuMt0viFshobX4XM/dQ=="> 
    <a class="btn btn-danger btn-xs" data-confirm="Are you sure?" data-submit="parent" href="#">Delete</a> 
</form> 

私は、ソートのJSインポート足りませんか? 私はまた、これは、ブラウザによってダウンロードされていることができます。

//This is being downloaded as phoenix_html.js 
// Although ^=parent is not technically correct, 
// we need to use it in order to get IE8 support. 
var elements = document.querySelectorAll('[data-submit^=parent]') 
var len = elements.length 

for (var i=0; i<len; ++i) { 
    elements[i].addEventListener('click', function(event){ 
    var message = this.getAttribute("data-confirm") 
    if(message === null || confirm(message)){ 
     this.parentNode.submit() 
    }; 
    event.preventDefault() 
    return false 
    }, false) 
} 
+1

あなたのビューに 'App.Router.Helpers'と' alias App.Endpoint'をインポートしましたか? – mudasobwa

+0

いいえ..しかし、それは役に立たなかった – MJay

+0

私はあなたが実際のアプリケーション名に 'App'を変更したと信じていますか?これはまた助けになるかもしれません:http://www.phoenixframework.org/docs/routing#section-more-on-path-helpers – mudasobwa

答えて

2

編集:これは、問題を知られるように起こります。あなたはapp.html.eexに間違った場所に

<script src="<%= static_path(@conn, "/js/app.js") %>"></script>

を配置する場合

In brunch-config.js 
autoRequire: { 
    "js\\app.js": ["web/static/js/app"] 
} 

Source

+0

Hm。私は同じ問題に遭遇しました(ずっと後になって、これからです)。しかし、 '/'で 'js'を許す' endpoint.ex'を修正するべきではありませんか?それとも、それは既知の問題ですか? – kiminoa

+0

@kiminoaそれは既知の問題でした。 – Haito

6

OPの問題にはない特別な解決策が、このエラーも発生する可能性があります。ここで修正があります。 (例えば<head>内の代わりに、本文の最後に)誰が私が同じように自分自身を明らかに全く異なる問題を抱えていたこれを打つために

+2

私は体の終わりにそれを戻して、それが働き始めた。ありがとう。しかし、なぜこのように考えるのだろうか? – Devaroop

3

は、ケースには、ここでこれをドロップしますそれが役立ちます:

を私が誤ってimport "phoenix_html"をapp.jsファイルから削除したのは、生成されたボイラープレートの一部として間違っていて、それを追加して私の問題を修正したことになります。

+0

ありがとうございました。 – EugZol

1

私は最近、同じ問題を抱えていましたが、layout.html.eexファイルから<script src="<%= static_path(@conn, "/js/app.js") %>"></script>を誤って削除したことが判明しました。それを追加すると問題が解決しました。

0

以降のバージョンのPhoenixでは、app.jsファイルをpriv/static/js/app.jsに表示すると、未処理のgithub jsファイルへのリンクを参照するコメントが表示されます。この小さなJavascriptスニペットには、deleteリンクヘルパーが実際に正しく機能するための重要なコードが含まれています。

関連する問題