Vue.js-如何在数据对象更改时向父组件发出信号?

问题描述

使用v-model在组件内的视图和数据模型之间创建双向绑定。而且视图交互可以向父组件发出事件。

但是,是否有可能在子组件中更改数据模型,从而将事件发送给父组件?

因为只要是单击复选框的用户,父级和子级都可以正常运行(数据模型更新并且事件被发出)。但是,如果我拉起Vue开发工具并在子组件的数据中切换复选框,则v-model的双向绑定将在CHILD组件中进行适当的更新,但是没有任何更新可以传递给父组件组件(我怀疑是因为未发出事件)。

如何确保父组件“知道”子组件中的数据更改?我认为这一定有可能...如果不从子组件发出,也许有某种方法可以让父组件“监视”子组件的数据?

感谢您的帮助或指导!同时,我将继续阅读并寻找答案!

子组件

<template>
  <div class="list-item" v-on:click="doSomething">
    <input type="checkbox" v-model="checked">
    <label v-bind:class="{ checked: checked }">{{ name }}</label>
  </div>
  ...
</template>

<script>
  ...
  data: function() {
    return {
      checked: false,}
  },methods: {
    doSomething() {
      ...
      this.$emit('doSomething',this)
    }
  }
</script>

父级组件

<template>
  <ChildComponent v-on:doSomething="getItDone"></ChildComponent>
  ...
</template>

<script>
  ...
  methods: {
    getItDone(target) {
      ...
    }
  }
</script>  

更新:在使用@IVO GELOV解决方案多了一些之后,我现在遇到的问题是,当涉及多个Child组件时,因为Parent是myBooleanVar的一个奇异值驱动整个事情,选中一个子组件的框会导致 all 所有子组件都被选中。

因此,视图和数据操作都可以移交给父级,这无疑是一个进步,但是我仍在尝试找出如何“隔离”这种情况,以便仅对作用于其上的一个子级组件进行拖动参加聚会...

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)