vuejs v-for with django 不适用于动态数据
vuejs v-for with django not working for dynamic data
我正在使用 vuejs + django 实现 table。
当我静态声明行和列时,它正在工作。但是当我从 django 中获取值时,它不再工作了,尽管它正在打印正确的值。
我的 HTML 代码看起来像
{% verbatim %}
<div class="col-9">
<label><h4>Position</h4></label> col: {{tableCols}} : row: {{tableRows}} (here it is printing correct value)
<table>
<tr v-for="row in tableRows">
<td v-for="col in tableCols"
v-bind:class="{selected: selectedData === counter(row,col)}"
v-on:mousedown="mouseDown(counter(row,col))"
v-on:mouseover="mouseOver(counter(row,col))"
v-on:mouseup="mouseUp"
>
{{rowName[row-1]}}:{{col}}:{{counter(row,col)}}
</td>
</tr>
</table>
</div>
<input type="hidden" name="containerIDs" v-model="selectedData">
{% endverbatim %}
vuejs 代码看起来像
new Vue({
el: '#testtube',
data: {
tableCols : "{{testtubeplate.number_of_columns}}", // 12,
tableRows : "{{testtubeplate.number_of_rows}}", //8,
rowName: RowName,
selectedData: [],
cellNo: 0,
isMouseDown:false
},
methods: {
...
在 HTML 我打印了 col: {{tableCols}} : row: {{tableRows}},这是打印正确的值,但只有 1 行并且正在创建 2 列而不是 12 和 8。
但是,如果我静态地放置 12、8,它就可以工作。 (附图片)
有什么建议吗?
得到解决方案,
我必须将值转换为整数。
所以需要改vuejs代码为
tableCols : parseInt("{{testtubeplate.number_of_columns}}"), // 12,
tableRows : parseInt("{{testtubeplate.number_of_rows}}"), //8,
我正在使用 vuejs + django 实现 table。 当我静态声明行和列时,它正在工作。但是当我从 django 中获取值时,它不再工作了,尽管它正在打印正确的值。
我的 HTML 代码看起来像
{% verbatim %}
<div class="col-9">
<label><h4>Position</h4></label> col: {{tableCols}} : row: {{tableRows}} (here it is printing correct value)
<table>
<tr v-for="row in tableRows">
<td v-for="col in tableCols"
v-bind:class="{selected: selectedData === counter(row,col)}"
v-on:mousedown="mouseDown(counter(row,col))"
v-on:mouseover="mouseOver(counter(row,col))"
v-on:mouseup="mouseUp"
>
{{rowName[row-1]}}:{{col}}:{{counter(row,col)}}
</td>
</tr>
</table>
</div>
<input type="hidden" name="containerIDs" v-model="selectedData">
{% endverbatim %}
vuejs 代码看起来像
new Vue({
el: '#testtube',
data: {
tableCols : "{{testtubeplate.number_of_columns}}", // 12,
tableRows : "{{testtubeplate.number_of_rows}}", //8,
rowName: RowName,
selectedData: [],
cellNo: 0,
isMouseDown:false
},
methods: {
...
在 HTML 我打印了 col: {{tableCols}} : row: {{tableRows}},这是打印正确的值,但只有 1 行并且正在创建 2 列而不是 12 和 8。 但是,如果我静态地放置 12、8,它就可以工作。 (附图片)
有什么建议吗?
得到解决方案, 我必须将值转换为整数。
所以需要改vuejs代码为
tableCols : parseInt("{{testtubeplate.number_of_columns}}"), // 12,
tableRows : parseInt("{{testtubeplate.number_of_rows}}"), //8,