<view class="fb_content"> <textarea value="{{textVal}}" bindinput="handleTextInput" placeholder="请描述一下您的问题"> </textarea> <view class="fb_tool"> <button bindtap="handleChooseImg">+</button> <view class="up_img_item" wx:for="{{chooseImgs}}" wx:key="*this" bindtap="handleRemoveImg" data-index="{{index}}"> <UpImg src="{{item}}"></UpImg> </view> </view> </view> handleChooseImg() { // 2 调用小程序内置的选择图片api wx.chooseImage({ // 同时选中的图片的数量 count: 9, // 图片的格式 原图 压缩 sizeType: ['original', 'compressed'], // 图片的来源 相册 照相机 sourceType: ['album', 'camera'], success: (result) => { this.setData({ // 图片数组 进行拼接 chooseImgs: [...this.data.chooseImgs, ...result.tempFilePaths] }) } }); }, // 点击 自定义图片组件 handleRemoveImg(e) { // 2 获取被点击的组件的索引 const { index } = e.currentTarget.dataset; // 3 获取data中的图片数组 let { chooseImgs } = this.data; // 4 删除元素 chooseImgs.splice(index, 1); this.setData({ chooseImgs }) },在hbuilderx的vue上要怎么改才可以
时间: 2024-04-12 10:31:54 浏览: 79
asp 输出换行的详细说明 <font color=red>原创</font>
要在HBuilderX中将这段代码改为Vue.js代码,您需要进行以下修改:
1. 将`<view>`标签改为`<div>`标签。
2. 将`<textarea>`标签的`value`属性改为`v-model`,将`bindinput`事件改为`@input`。
3. 将`<button>`标签的`bindtap`属性改为`@click`。
4. 将`<view>`标签的`wx:for`属性改为`v-for`,将`wx:key`属性改为`:key`。
5. 将`<UpImg>`标签替换为相应的自定义图片组件。
6. 在Vue组件的`data`选项中定义 `textVal` 和 `chooseImgs` 变量,并在 `<textarea>` 和 `<UpImg>` 标签中使用相应的数据绑定。
7. 将`this.setData()`改为直接修改Vue组件的数据。
修改后的代码如下所示:
```vue
<template>
<div class="fb_content">
<textarea v-model="textVal" @input="handleTextInput" placeholder="请描述一下您的问题"></textarea>
<div class="fb_tool">
<button @click="handleChooseImg">+</button>
<div class="up_img_item" v-for="(item, index) in chooseImgs" :key="index" @click="handleRemoveImg(index)">
<UpImg :src="item"></UpImg>
</div>
</div>
</div>
</template>
<script>
export default {
data() {
return {
textVal: '',
chooseImgs: []
};
},
methods: {
handleTextInput(event) {
this.textVal = event.target.value;
},
handleChooseImg() {
// 调用小程序内置的选择图片api
wx.chooseImage({
// 同时选中的图片的数量
count: 9,
// 图片的格式 原图 压缩
sizeType: ['original', 'compressed'],
// 图片的来源 相册 照相机
sourceType: ['album', 'camera'],
success: (result) => {
// 图片数组进行拼接
this.chooseImgs = [...this.chooseImgs, ...result.tempFilePaths];
}
});
},
handleRemoveImg(index) {
// 删除元素
this.chooseImgs.splice(index, 1);
}
}
};
</script>
```
请注意,以上代码只是根据您提供的原始代码进行的修改,可能还需要根据您的具体需求进行调整。另外,如果您在HBuilderX中使用Vue.js,请确保已正确配置Vue.js开发环境。
希望以上信息对您有所帮助!如果您有任何其他问题,请随时提问。
阅读全文