アプリの画面上部にカウンターとして使用される 3 つのフィールドを追加したいと考えています。次のコードは実際には機能しますが、ページを編集モードにして [保存] ボタンをクリックすると、3 つのカウンター フィールドが消え、ブラウザーを更新するまでそのままになります。私は 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");
}
どんな助けでも大歓迎です。ありがとう!