vue: вызвать функцию с дополнительным параметром - PullRequest
0 голосов
/ 28 июня 2018

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) {
}

Свойство или метод "response" не определены в экземпляре, но на них ссылаются во время рендеринга.

1 Ответ

0 голосов
/ 28 июня 2018

Аргументы для вашего метода получены из события on-success компонента. Например, это будет что-то вроде

this.$emit('on-success', response, file, fileList)

Внутренне, Vue будет делать что-то вроде (и это очень упрощено) ...

let boundEventHandler = parseEventHandlerExpression(eventName)
boundEventFunction.apply(vmInstance, arguments)

То, что вы можете сделать в вашем потребителе, это собрать все эти аргументы и затем добавить свои

:on-success="handleUrlSuccess(...arguments, 233)"
...