我想添加三个字段,这些字段将用作计数器到我应用程序屏幕的顶部。但是,下面的代码实际上工作,但如果您将页面置于编辑模式,然后单击“保存”按钮,三个计数器字段将消失并保持这种状态,直到刷新浏览器为止。我是Haml的新手,那里没有太多的文档,有什么没有帮助我。Haml新手无法在页面中添加无序列表
下面是相关Haml的代码来渲染页面的问题:
- form_for [@application, @item_collection], :html => { 'data-remote' => 'json', :id => 'edit_item_collection', :class => 'show_progress inline_edit' } do |f|
= render 'edit_fields', :f => f
.submit.editing_only
%button.default_action{ :type => 'submit',:id => 'Save'} Save`
这里是实际页面的Haml的代码:
.field.large
= f.label :name, nil, 'data-help-id' => 'page_name'
= f.text_field :name, disabled_if_unauthorized(@item_collection, :maxlength => 255, :title => "Edit Page")
= f.error_message_on(:name, :css_class => 'error_message')
.field
= f.label :path, nil, 'data-help-id' => 'page_path'
= f.text_field :path, disabled_if_unauthorized(@item_collection, { :maxlength => 255, :class => 'extra_margin', :title => "Edit Page" })
= f.error_message_on(:path, :css_class => 'error_message')
.field.info
= f.label 'Info'
%ul.elements_count
%li.elements_in_use{ :id => 'elements_in_use' }
%li.unused_elements{ :id => 'unused_elements'}
%li.undefined_elements{ :id => 'undefined_elements'}
当我点击“保存”的elements_count无序列表消失(但如果我刷新浏览器会重新出现)。我知道问题是我需要把“= f”。在这些元素前面,但我不知道如何为列表做这件事。
这里是我的填充li元素的JavaScript:
function getElementCount() {
var usage_element_total = $('.usage').size();
var unused_element_total = $('.unused').size();
var undefined_element_total = $('.undefined').size();
$('#elements_in_use').html(usage_element_total + " Elements in use,");
if (unused_element_total < 1) {
$('#unused_elements').html(" 0 unused Elements,");
} else {
$('#unused_elements').html((unused_element_total-1) + " unused Elements,");
}
$('#undefined_elements').html(undefined_element_total + " undefined Elements");
}
任何帮助将大大赞赏。谢谢!
您描述的保存按钮在哪里点击以及点击时触发了什么? “li”元素如何填充?我怀疑这是一个Javascript的事情,并不需要与Haml做。 '= f'从Rails表单构建器插入输出,但包含自己的标记也不是问题。 –
我相信你100%正确。我添加了Save按钮的代码以及用于填充li元素的JavaScript。谢谢! –