canfoo/self-vue

无法监测 vm.data中 类型为Object的属性变化

aswind7 opened this issue · 2 comments

eg.

        el: '#app',
        data: {
            title: 'hello world',
			name: 'canfoo',
			obj: {
				c: 3
			}
        },

此处 如果执行 obj.c = 4 , 不会被监听,因为我看到 watcher.js中 这段逻辑

        var value = this.vm.data[this.exp];
        var oldVal = this.value;
        if (value !== oldVal) {

引用类型 , 不会进入此if判断。

****************************************分割线***************************************

问题2: 并且 compile.js无法编译 这样的东西 <h1>obj c: {{obj.c}}</h1>

可以改一下 这个 来解决编译的问题:
var initText = this.vm[exp]; 改为 var initText = eval('this.vm.' + exp);

好的,谢谢建议啊