Rails 3 coffeescript 控制器关联
Rails 3 coffeescript controller association?
好吧,我是JS/JQuery/Coffeescript菜鸟。这对某些人来说可能很容易。
在成功实现RBate的嵌套表单模型railscast之后,我试图在一个更简单的模型中重现这一点:分会有许多县。
我有一个包含以下代码的chapters.js.coffee
文件:
jQuery ->
$('form').on 'click', '.remove_fields', (event) ->
$(this).prev('#destroy').val('1')
$(this).closest('fieldset').hide()
event.preventDefault()
此代码在其他模型中工作正常。但不是在这里。
_chapters_form.html.erb:
<div class="row span12">
<%= form_for(@chapter) do |f| %>
<%= render 'shared/error_messages', object: f.object %>
<div class="span2"><strong>Chapter name:</strong></div>
<div class="span6"><%= f.text_field :name %></div>
<div class="span2"><strong>Chapter Number:</strong></div>
<%= f.number_field :chapter_num, class: "span2" %>
</div>
<div class="row span12">
<div class="span12">
<%= f.fields_for :counties do |builder| %>
<%= render 'county_fields', f: builder %>
<% end %>
</div>
<% if f.object.new_record? then link = 'Add the Chapter' else link = 'Update Chapter' end %>
<%= f.submit "#{link}", class: "btn btn-large btn-primary" %>
<%= link_to "Cancel", chapters_path, class: "btn btn-large btn-primary" %>
<% end %>
</div>
和:
_county_fields.html.erb:
<fieldset>
<div class="well span12">
<div class="row span12">
<div class="span3">County Number: <br /><i>(6-digit FIPS code)</i></div>
<div class="span2"><%= f.number_field :county_num %></div>
<div class="span2">County Name:</div>
<div class="span5"><%= f.text_field :name %></div>
</div>
<div class="row span12"><hr></div>
<div class="row span12">
<div class="span6">Move to new Chapter:</div>
<div class="span6"><%= select(:county, :chapter_id, Chapter.all.collect {|c| [c.name, c.id]}) %></div>
</div>
<div class="row span12">
<div class="pull-right">
<%= f.hidden_field :_destroy, id: "destroy" %>
<%= link_to "remove county", "#", class: "remove_fields" %>
</div>
</div>
</div>
</fieldset>
JS中没有错误。再次,菜鸟说话,但似乎没有调用JS。单击<%= link_to "remove county", "#", class: "remove_fields" %>
只会将#
添加到 URI。
我做错了什么?
按照要求,HTML 在小提琴中也不起作用。
你的HTML坏了。在表单元素之前打开一个div,然后在关闭表单之前将其关闭。如果将表单元素向上移动到容器div 内部,它将起作用。
<body>
<div class="container-fluid">
<form accept-charset="UTF-8" action="/chapters/7" class="edit_chapter" id="edit_chapter_7" method="post">
<div class="row-fluid">
...
</div>
</form>
</div>
</body>
您应该在缩进HTML时更加小心,以帮助避免这种简单的错误。代码格式很重要。
它们出现的页面 - 无论它们如何呈现 - 必须是chapters_controller
的操作才能包含chapters.js.coffee
。我敢打赌,脚本根本没有被包含,因为代码看起来很好。查看您遇到此代码问题的页面:
jQuery ->
console.log "included chapters.js.coffee"
$('form').on 'click', '.remove_fields', (event) ->
console.log "clicked .remove_fields"
$(this).prev('#destroy').val('1')
$(this).closest('fieldset').hide()
event.preventDefault()
另外,在您的问题中发布呈现的HTML
相关文章:
- 在指令控制器中使用$attrs时出现问题
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- 从控制器返回后Ajax启动事件激发
- 获取@ResponseBody的一部分作为主干和Spring MVC控制器之间的参数
- 如何在单击复选框后调用控制器方法
- 在控制器和数据对象之间同步数据
- 将Javascript数组发送到控制器ASP.NET MVC
- 角度控制器结构
- 如何在Jquery中发布后将值从视图返回到控制器
- 将值从html传递到AngularJS控制器
- Md 对话框未加载与其关联的控制器
- AngularJS:如何在指令范围的对象发生变化时更新与控制器作用域相关联的控制器作用域
- 公共控制器和服务器控制器在 MEAN.io 中如何相互关联
- 显示与单独控制器关联的模型
- 如何从link函数访问与指令关联的控制器实例?
- 访问与指令实例关联的控制器
- 余烬对来自余烬-数据模型关联的另一个控制器的数据进行排序
- Jquery$.ajax()调用将具有其他参数的关联数组传递给MVC控制器失败
- AngularJS - 从其关联的控制器按 Id 访问视图元素
- Rails 3 coffeescript 控制器关联