更新时间:2023-11-15 11:48:34
要通过索引创建具有动态名称的输入元素,可以在 JS 表达式中使用 +
进行连接:
<input type="hidden" :name="'segment[' + index + '][nb]'" :value="a.nb">
生成:
<input type="hidden" name="section[1][nb]" value="1"><input type="hidden" name="section[2][nb]" value="4">
参见:https://vuejs.org/v2/guide/语法.html#Using-JavaScript-Expressions
I use VueJs, i need to extract javascript variable to generate hidden fields.
But i need to set the name by the index of the variable.
I want to use zig-zag naming schema.
like,
<input type="text" name="segment[{index}][field_name]" :value="{value}">
Javascript Variable:
var test_template = {
0: {
nb: 2
},
1: {
nb: 1
},
2: {
nb: 4
}
};
Foreach with Variable to Generate Hidden Fields :
<div v-for="(a,index) in test_template" class="row">
<input type="hidden" :name="segment[index][nb]" :value="a.nb">
</div>
Here, :name is a dynamic instance for access vuejs values. index is vuejs variable but "segment" is not a vuejs variable, its actually a string.
But i need this schema to generate array of inputs.
Is this possible ?
Or Any other solutions are there ?
Thanks in Advance !
To create input elements with dynamic names by index, you can use the +
in a JS expression to concatenate:
<div v-for="(a,index) in test_template" class="row">
<input type="hidden" :name="'segment[' + index + '][nb]'" :value="a.nb">
</div>
Generates:
<input type="hidden" name="section[0][nb]" value="2">
<input type="hidden" name="section[1][nb]" value="1">
<input type="hidden" name="section[2][nb]" value="4">
See: https://vuejs.org/v2/guide/syntax.html#Using-JavaScript-Expressions