【发布时间】:2016-03-20 06:26:48
【问题描述】:
我使用 Phoenix 内置的 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)
}
【问题讨论】:
-
您认为
import App.Router.Helpers和alias App.Endpoint有吗? -
没有。但没有帮助
-
我相信您已将
App更改为您的真实应用程序名称,对吧?这也可能会有所帮助:phoenixframework.org/docs/routing#section-more-on-path-helpers -
顺便说一句,你会尝试从你的视野中只看到
IO.putsevent和event_path(@conn, :delete, event)吗? -
页面没有被重新加载,# 只是被附加到地址。控制器中的动作永远不会被调用。这是客户端的问题。