- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 "v-for" 为输入组件构建一个表单,然后使用来自输入的数据使用 PDFMake 生成一个 pdf 文件。但是我不知道如何将数据从输入组件传回父组件。
我阅读了很多主题,但找不到实现此目的的方法。
这是没有额外输入、复选框等的短代码。我计划使用大约 15 个具有不同参数的输入来生成最终的 PDF。一些参数还将用于根据条件语句更改最终数据。如果代码在一个文件中,没有循环和组件,一切都可以正常工作。但不是现在。
<template lang="pug">
.form
Input(v-for="data in form.client_info" v-bind:key="data.id" v-bind:data="data")
button(@click="pdfgen") Download PDF
</template>
<script>
export default {
components: {
Input: () => import('@/components/items/form/input')
},
data() {
return {
client_name: '',
client_email: '',
form: {
client_info: [
{id:'client_name', title:'Name'},
{id:'client_email', title: 'Email'},
{id:'foo', title: 'foo'}
],
}
}
},
methods: {
pdfgen: function () {
var pdfMake = require('pdfmake/build/pdfmake.js')
if (pdfMake.vfs == undefined) {
var pdfFonts = require('pdfmake/build/vfs_fonts.js')
pdfMake.vfs = pdfFonts.pdfMake.vfs;
}
if (this.foo) {
var foo = [
'Foo: ' + this.foo
];
} else {
foo = ''
]
}
var docDefinition = {
content: [
'Name: ' + this.client_name,
'Email: ' + this.client_email,
'\n',
foo
]
}
pdfMake.createPdf(docDefinition).download('Demo.pdf');
}
}
}
</script>
<template lang="pug">
label.form_item
span.form_item_title {{ data.title }}
input.form_item_input(:v-model="data.id" type="text")
</template>
<script>
export default {
props: ['data']
}
</script>
有什么想法可以让它发挥作用吗?
最佳答案
您需要使用 vue 内置的名为 $emit()
的方法。
在介绍如何操作之前,先快速解释一下。因为 vue 试图使数据单向流动,所以没有一种 super 快速的方法可以将数据传回父级。相反,Vue 建议将一个方法传递给子组件,该方法在被调用时会将其更改的值“发出”给它的父组件,然后父组件可以使用该值执行它想要的操作。
因此,在您的父组件中,您需要添加一个方法来在子组件发出
时处理更改。这可能看起来像:
onChildValueChanged(value){ this.someValue = value }
我们传递给函数的 value
将来 self 们的子组件。我们需要在我们的子组件中定义这个函数应该做什么。在您的子组件中,您可以拥有如下所示的功能:
emitValueChange(event){ this.$emit('childFunctionCall', this.someChildValue) }
接下来,我们需要通过在我们的子模板上添加一个属性来将这两个功能联系在一起。在这个例子中,它可能看起来像:
<Child :parentData="someData" v-on:childFunctionCall="onChildValueChanged"></Child>
上面的模板所做的是说当函数 on:childFunctionCall
被“发出”时,我们在父作用域中的函数应该被触发。
最后,在子模板中我们只需要添加一些调用发射器的事件。这可能看起来像:
<button v-on:click="emitToParent">This is a button</button>
所以当我们的按钮被点击时,发射器被调用。这会触发名为“emitToParent”的子组件中的函数,该函数又会调用我们传递给子组件的函数。
您必须定制您的用例以匹配考试
关于javascript - 使用 Vuejs 构建表单。将数据从 child 传递给 parent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57578801/
我的收藏具有以下结构 { _id:1, parent_id:0 } { _id:2, parent_id:1 } { _id:3, parent_id:1 } { _id:4, par
到目前为止,我已经尝试过获取该对象的所有子对象,但它只带来了两个子对象。不都是 child 的 child 。我如何获取所有内容并循环获取特定名称对象 Transform[] objChild = g
这个问题不太可能对任何 future 的访客有帮助;它只与一个较小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,通常不适用于全世界的互联网受众。如需帮助使此问题更广泛适用,visit the
我有一个如下表 好吧,在这个表中每个用户都有一个父用户,那么如果我们选择一个用户,那么它的 id 、子代 id 和子代子代 id 应该作为数组返回。我需要一个查询来获取 Rails 中的这些值,而不使
我需要以下代码的帮助: HTML: process process 在点击 td[class=process] 时,我需要 input[name=dat
好的,所以我从中获得了一个 PHP,该 PHP 由依赖于手头动态情况的切换循环传播(我认为)。现在,当我添加一个复选框时,我希望能够使 div 中的第一个复选框具有顶部边框和侧面,没有底部。下面的只有
我正在使用 Swift 和 Sprite Kit。我有一个名为 MrNode 的 SKNode,它有多个 SKSpriteNodes 和 SKNode 子节点。一些SKNode有子节点,而这些子节点也
对不起,这个标题太俗了,但我真的不确定如何解释这个,我是新一代的 SQL 技能由于事件记录模式而退化的人之一! 基本上我在 PostgreSQL 中有三个表 客户端(一个客户端有很多 map ) -
我有这样的简单表格: 编号 parent_id 创建于 具有父/子关系...如果一行是子行,则它有一个 parent_id,否则它的 parent_id 为 0。 现在我想选择所有没有子项(因此本身)
所以我有这样的结构: 我的问题是:如何从每个主题中删除 ID 为 3Q41X2tKUMUmiDjXL1BJon70l8n2 的每个字段。我正在考虑这样的事情: admin.database().ref
这个问题在这里已经有了答案: Change opacity on all elements except hovered one (1 个回答) 关闭 5 个月前。 因此,当鼠标悬停在 child
我需要在 Delphi 5 中创建一个 QuickReport,其布局如下: +================ | Report Header +================ +========
假设我有这样的 html: Some more detailed code.... 我想知道如何在CSS中使用“A
我有一个使用 flexbox 的类似表格的布局: +--------------+---------------+-----------------+---------------+ | 1
我有一个关联,其中 user has_many user_items 和 user_items has_many user_item_images。与一个已经退出的用户。我可以创建一个新的 user_
我想选择无序列表中的前两个列表项。我可以这样选择第一项: ul li:nth-child(1) a { background: none repeat scroll 0 0 beige; }
ul li:first-child a { border-radius: 5px 5px 0 0; } ul li:last-child a { border-radius: 0 0 5p
我有一个这样的表:
或者这些术语用于指代同一事物? 我正在尝试在我的 Win32 应用程序中实现一些显示位图图像的自定义按钮。一个教程指出我应该使用 CreateWindow() 创建子窗口。 但是,我已经从另一个关于创
我想在 jquery 中获取我的 svg 的 id,我尝试了这个 jquery,但它是未定义的。 $(event.target).children('svg').attr("id") Target.e
我是一名优秀的程序员,十分优秀!