Я пытаюсь предварительно просмотреть фотографию профиля на существующем элементе img. Моя проблема в том, что новое измерение изображения становится неопределенным вне функции загрузки img.
Как я могу передать эти измерения на сервер, чтобычто я могу правильно изменить размер элемента img?
Я также пытался использовать Vuex Store для передачи измерений, но с такими же неопределенными результатами.
У меня также есть функция, которая прослушивает изменение размера, и после того, как пользователь меняет окно, размер img изменяется должным образом, однако я пытаюсь сделать это без триггера события.Даже когда я пытаюсь вручную вызвать событие изменения размера с помощью jQuery, оно не меняет размер.У меня сложилось впечатление, что каким-то образом размеры нового источника img не устанавливаются должным образом, пока изменение размера даже не обновит размеры?
<b-img id="profilePhoto" v-bind="profile" :src="this.photo" class="profilePhoto" @change="handleResize()"></b-img>
export default {
data() {
return {
errors:{},
profile: {},
fileDimensions: {},
photo: '',
form: this.$vform({
id: '',
name: '',
email: '',
password: '',
role: '',
bio: '',
photo: ''
})
}
}
}
getPhoto(e) {
let file = e.target.files[0];
if (typeof file !== 'undefined'){
let reader = new FileReader()
let limit = 1024 * 1024 * 2
if (file.size > limit) {
return false;
}
reader.onloadend = (file) => {
this.form.photo = reader.result
this.photo = this.form.photo
}
reader.readAsDataURL(file)
$("<img/>",{
load : function(){
// will return dimensions fine if i use alert here
this.fileDimensions = { width:this.width, height:this.height} ;
},
src : window.URL.createObjectURL(file)
});
// becomes undefined outside of the load functions
var aw = this.fileDimensions.width
var ah = this.fileDimensions.height
var ph = $('.profile').height()
var pw = $('.profile').width()
console.log(this.fileDimensions.width)
if (ah>aw){
this.profile = { width: ph, height: 'auto'}
} else if (aw>ah) {
this.profile = { width: 'auto', height: ph}
} else {
this.profile = { width: ph+10, height: pw+10}
}
}
}
Я ожидаю получить размеры такя могу определить, как установить свойства width и height для элемента img с его новым src, однако размерность становится неопределенной.