2017-02-22 193 views
1

所以我嘗試檢查/取消選中複選框,當祖父母或父母被選中/取消:VUE:選擇/取消複選框勾選祖父母或父母/選中

new Vue({ 
    el: '.app', 
    data: { 
    grand_parent: false, 
    parent: false 
    } 
}) 

但是它不是一樣可以工作在這裏看到:

http://jsbin.com/yabewemimo/edit?html,js,output

什麼我試圖acheive是:

  • 當盛大父選中/取消,但應該不會影響直接的兒童,例如兩個父母和孩子
  • 當父被選中/取消,但應該不會影響孩子只有

感謝您的幫助

回答

1

它看起來你必須看它:

watch: { 
    grand_parent: function (val) { 
     if (val) this.parent = true; 
    } 
    } 
+0

感謝這也是我的第一反應,但想看看是否有可能不計算或觀看。我認爲表達式應該是'this.chk_admin_all = val'以取消未檢查的狀態,謝謝+1 – dev02

2

你的代碼不按照您的期望工作作爲你對你父母有v-model,所以你:checked屬性綁定是不是有效果。

new Vue({ 
    el: '.app', 
    data: { 
    grand_parent: false, 
    parent_proxy: false // Because it will cause a stack overflow if 
    },     // I reference this.parent in its own computed 
    computed: { 
    parent: { 
     get() { 
     return (this.grand_parent) 
      ? true 
      : this.parent_proxy 
     }, 
     set (val) { 
     this.parent_proxy = val 
     } 
    } 
    } 
}) 

工作bin