Vue JS を扱い、配列からデフォルトの単一値を選択するスタック オーバーフローについて、多くの質問を目にします。groups
ただし、各アイテムの配列を ALL THE GROUPSの配列と比較しensemble_groups
、デフォルトで正しい選択をロードする必要があります。
これが私が今これをやろうとしている方法です:
<div id="oven">
<template v-for="biscuit in oven">
<!--show checkbox for every available group-->
<!--check groups array to see if this ensemble_group should be selected by default-->
{{ ensemble_groups }}
<input type="checkbox"
name="cast_list[@{{ $index }}][groups][]"
:checked="biscuit.groups.IndexOf(name) == {{ group_name }}"
value="{{ group_name }}"
id="g-@{{ $index }}-{{ group_name|slugify }}">
<label for="g-@{{ $index }}-{{ group_name|slugify }}">{{ group_name }}</label>
<br>
{{ /ensemble_groups }}
</template>
</div>
したがって、すべてのグループの値がYAMLに保存されていますensemble_groups.group_name
YAML に保存されている定義済みの値と一致します。cast_list.groups.value
そして、私の Vue.js 配列は次のoven.groups.name
ようにそれらを格納しています:
new Vue({
el: '#oven',
data: {
oven: [
{{ cast_list }}
{
groups: [
{{ groups }}
{
name: "{{ value }}"
},
{{ /groups }}
],
},
{{ /cast_list }}
]
}
})
私は理にかなっていますか?配列を比較しています(複数の定義済みと利用可能なすべて)。
したがって、次のような 4 つの ensemble_groups 値が["Ballroom dancers", "Tap dancers", "Farmers", "Cowboys"]
あり、cast_list エントリが 2 つのグループに配置され["Tap dancers", "Cowboys"]
ている場合、ページの読み込み時にこれら 2 つのグループのチェックボックスをオンにする必要があります。
ヘルプ?
アップデート:
Roy's Answer を使用してチェックボックスを機能させましたが、データを適切な場所に保持するためのインデックス値を失いました。Vue JS を使用してネストされた配列のインクリメンタル カウンターを設定する方法に続きます。