我是Vuejs的新手。做了些什么,但我不知道这是简单/正确的方法。
我想要的是
我想要数组中的一些日期,并在事件中更新它们。首先,我尝试了Vue.set,但没有成功。现在,在更改我的数组项之后:
this.items[index] = val;
this.items.push();
我没有将push()推送到任何数组,它会更新。。但是有时最后一项会被隐藏,以某种方式...我认为此解决方案有点怪异,如何使其稳定?
简单的代码在这里:
new Vue({
el: '#app',
data: {
f: 'DD-MM-YYYY',
items: [
"10-03-2017",
"12-03-2017"
]
},
methods: {
cha: function(index, item, what, count) {
console.log(item + " index > " + index);
val = moment(this.items[index], this.f).add(count, what).format(this.f);
this.items[index] = val;
this.items.push();
console.log("arr length: " + this.items.length);
}
}
})
ul {
list-style-type: none;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/1.0.11/vue.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.6/moment.min.js"></script>
<div id="app">
<ul>
<li v-for="(index, item) in items">
<br><br>
<button v-on:click="cha(index, item, 'day', -1)">
- day</button>
{{ item }}
<button v-on:click="cha(index, item, 'day', 1)">
+ day</button>
<br><br>
</li>
</ul>
</div>
编辑2
Vue.set(object, prop, value)
编辑1
对于vuex,您将要做
Vue.set(state.object, key, value)
原版的
因此,仅针对其他提出此问题的人。它出现在Vue 2. *中的某个点上,他们
this.items.$set(index, val)
取而代之this.$set(this.items, index, val)
。拼接仍然可用,这是vue 链接中可用的阵列突变方法的链接。