2015-12-14 18 views
11

ho usato Phoenix di costruito in gen.HTML per generare una vista semplice, ma non funzionacollegamento Elimina phoenix non funziona

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

E sulla pagina sembra che supponiamo di ma sufficiente aggiungere al # affrontare

struttura generata:

<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> 

mi manca un'importazione js di sorta? Posso anche questo essere scaricato dal browser:

//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

Hai importato App.Router.Helpers e alias App.Endpoint nella tua vista? – mudasobwa

+0

No .. Ma non è stato d'aiuto – MJay

+0

Credo che tu abbia cambiato 'App' nel tuo vero nome dell'applicazione, giusto? Questo potrebbe anche essere utile: http://www.phoenixframework.org/docs/routing#section-more-on-path-helpers – mudasobwa

risposta

2

Edit: Questo accade per essere conosciuto problema. Ecco la correzione:

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

Source

+0

Hm. Mi sono imbattuto nello stesso problema (molto più tardi, ciao dal futuro!), Ma non dovrei il 'endpoint.ex' che permette' js' a '/' risolverlo? O è il problema noto? – kiminoa

+0

@kiminoa Era un problema noto. – Haito

6

Pur non essendo la soluzione particolare problema di OP, questo errore può verificarsi anche se si inserisce

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

nel posto sbagliato nel app.html.eex . (Ad esempio all'interno <head> anziché alla fine del corpo)

+2

L'ho cambiato di nuovo alla fine del corpo e ha iniziato a funzionare. Grazie compagno. Ma non riesci a pensare perché è così? – Devaroop

3

Per chiunque altro colpire questo ho avuto un problema completamente diverso che si manifestava allo stesso modo, scenderà questa qui nel caso aiuta:

Risulta che ho accidentalmente cancellato import "phoenix_html" dal file app.js scambiandolo per essere parte del boilerplate generato, aggiungendo di nuovo risolto il mio problema.

+0

Grazie per quello. – EugZol

1

Recentemente ho avuto lo stesso problema, risulta che avevo accidentalmente cancellato il <script src="<%= static_path(@conn, "/js/app.js") %>"></script> dal mio file layout.html.eex. Aggiungendolo di nuovo risolto il problema.

0

Per le versioni successive di Phoenix, se si visualizza il file app.js all'interno di priv/static/js/app.js, si noterà un commento che fa riferimento a un collegamento a un file github raw. Questo piccolo frammento di Javascript contiene codice importante per garantire che gli helper del collegamento delete funzionino correttamente.

Problemi correlati