牛骨文教育服务平台(让学习变的简单)
博文笔记

直接给vue数组赋值,无法渲染到页面

创建时间:2017-08-13 投稿人: 浏览次数:121

直接操作vm.passwordArr, 无法渲染, 需要设置theArr, 最后使vm.passwordArr=需要设置theArr

<div id="app">
	<input maxlength="6" type="text" v-model="password">
	<ul>
		<li v-for="(value, index) in passwordArr">
			<span v-if="value">1</span>
		</li>
	</ul>
	<button v-on:click="showLi">渲染</button>
</div>

<script>

    var vm = new Vue({
        el: "#app",
        data: {
            password: "",
            passwordArr: [1,1,1,0,0,0]
        },
        methods: {
            showLi: function() {
                var theArr = [];
                for (var i = 0; i < vm.passwordArr.length; i++) {
                    if (i<vm.password.length) {
                        theArr[i] = 1;
                    } else {
                        theArr[i] = 0;
                    }                         
                }
                vm.passwordArr = theArr;
            }
        }
    })

</script>
错误示范:
<script>

	var vm = new Vue({
		el: "#app",
		data: {
			password: "",
			passwordArr: [1,1,1,0,0,0]
		},
		methods: {
			showLi: function() {
				var theArr = [];
		        for (var i = 0; i < vm.passwordArr.length; i++) {
		        	if (i<vm.password.length) {
		        		// 这样写是无效的
		        		vm.passwordArr[i] = 1;
		        	} else {
		        		vm.passwordArr[i] = 0;
		        	}			        	 
		        }
			}
		}
	})

</script>



声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。