javascript - vue:调用带有额外参数的函数
问题描述
https://github.com/ElemeFE/element http://element.eleme.io/#/en-US/component/upload
<el-upload
class="avatar-uploader"
action="/upload"
:show-file-list="false"
:on-error="handleUrlError"
:on-success="handleUrlSuccess">
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
功能:
handleUrlSuccess(response, file, fileList) {
}
如果添加一个额外的参数:
<el-upload
class="avatar-uploader"
action="/upload"
:show-file-list="false"
:on-error="handleUrlError"
:on-success="handleUrlSuccess(response, file, fileList, 233)">
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
功能:
handleUrlSuccess(response, file, fileList, param) {
}
属性或方法“响应”未在实例上定义,但在渲染期间引用。
解决方案
您的方法的参数来自组件发出的成功事件。例如,它会有类似的东西
this.$emit('on-success', response, file, fileList)
在内部,Vue 会做类似的事情(这非常简化)......
let boundEventHandler = parseEventHandlerExpression(eventName)
boundEventFunction.apply(vmInstance, arguments)
你可以在你的消费者中做的是捕获所有这些参数,然后附加你自己的
:on-success="handleUrlSuccess(...arguments, 233)"
或者
:on-success="(res, file, fileList) => handleUrlSuccess(res, file, fileList, 233)"
感谢woki最后一个
推荐阅读
- python - Sagemaker LDA 主题模型 - 如何访问训练模型的参数?还有一种简单的方法来捕捉连贯性
- java - 带有 Java Sprint Boot REST 的 Google App Engine Standard - 在 GCLOUD 服务器中不起作用
- powershell - Get-AzureKeyVaultSecret : Unable to retrieve service key for ServicePrincipal account
- javascript - 无法提交表单 - ReactJs
- google-maps - 如何一次只显示一种类型的谷歌地图标记
- google-chrome - Chrome 扩展程序可以从安装的其他 chrome 扩展程序访问数据(chrome.storage API)吗?
- excel - 处理表格时的 Excel 动态数据验证选项
- html - 如何在 jquery 表的搜索栏中禁用 chrome 自动完成功能
- ruby-on-rails - 如何在 Rails 中实现条码生成器
- python - 分发在黑暗中如何运作?