我想在我的应用程序的屏幕顶部添加三个将用作计数器的字段。以下代码确实有效,但是,如果您将页面置于编辑模式,然后单击“保存”按钮,三个计数器字段会消失并保持这种状态,直到您刷新浏览器。我是一个 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");
}
任何帮助将不胜感激。谢谢!