Skip to content

Commit fc89a8a

Browse files
committed
fixed v model type for checkboxes
1 parent 81d89a9 commit fc89a8a

File tree

4 files changed

+20
-7
lines changed

4 files changed

+20
-7
lines changed

lib/matestack/ui/vue_js/components/form/base.rb

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,9 +87,22 @@ def input_key
8787
"$parent.data['#{key}']"
8888
end
8989

90-
# set v-model.number for all numeric init values
91-
def v_model_type
92-
(type == :number || init_value.is_a?(Numeric)) ? 'v-model.number' : 'v-model'
90+
# set v-model.number for all numeric init values or options
91+
def v_model_type(item=nil)
92+
if item.nil?
93+
(type == :number || init_value.is_a?(Numeric)) ? 'v-model.number' : 'v-model'
94+
else
95+
item.is_a?(Integer) ? 'v-model.number' : 'v-model'
96+
end
97+
end
98+
99+
# set value-type "Integer" for all numeric init values or options
100+
def value_type(item=nil)
101+
if item.nil?
102+
(type == :number || init_value.is_a?(Numeric)) ? Integer : nil
103+
else
104+
item.is_a?(Integer)? Integer : nil
105+
end
93106
end
94107

95108
# error rendering

lib/matestack/ui/vue_js/components/form/checkbox.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,8 @@ def checkbox_attributes(item)
5151
'@change': change_event,
5252
'init-value': (init_value || []).to_json,
5353
'v-bind:class': "{ '#{error_class}': #{error_key} }",
54-
'value-type': item_value(checkbox_options.first).is_a?(Integer) ? Integer : nil,
55-
"#{v_model_type}": input_key,
54+
'value-type': value_type(item),
55+
"#{v_model_type(item)}": input_key,
5656
}.merge(self.options)
5757
end
5858

lib/matestack/ui/vue_js/components/form/radio.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ def radio_attributes(item)
3838
value: item_value(item),
3939
type: :radio,
4040
ref: "select.#{key}",
41-
'value-type': item_value(radio_options.first).is_a?(Integer) ? Integer : nil,
41+
'value-type': value_type(item_value(radio_options.first))
4242
})
4343
end
4444

lib/matestack/ui/vue_js/components/form/select.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ def select_attributes
4141
multiple: multiple,
4242
id: id,
4343
ref: "select#{'.multiple' if multiple}.#{key}",
44-
'value-type': item_value(select_options.first).is_a?(Integer) ? Integer : nil,
44+
'value-type': value_type(select_options.first),
4545
'init-value': init_value,
4646
})
4747
end

0 commit comments

Comments
 (0)