微信翻译助手小程序 day3 -语言选择页

学习目标

主要完成学习目标:
(1)通过全局变量函数,实现数据的存储操作,完成语言选择页的实现

任务 3.1 语言选择页实现
任务描述
完成如下图所示效果展示
在这里插入图片描述
任务实施
1.打开app.js,为项目添加翻译语言列表默认值,在App对象下添加如下代码:

globalData: {
    curLang: {},
    langList: [{
        'lang': 'en',
        'index': 0,
        'chinese': '英文'
      },
      {
        'lang': 'zh',
        'index': 1,
        'chinese': '中文'
      },
      {
        'lang': 'jp',
        'index': 2,
        'chinese': '日语'
      },
      {
        'lang': 'kor',
        'index': 3,
        'chinese': '韩语'
      },
      {
        'lang': 'fra',
        'index': 4,
        'chinese': '法语'
      },
      {
        'lang': 'spa',
        'index': 5,
        'chinese': '西班牙语'
      },
      {
        'lang': 'ara',
        'index': 6,
        'chinese': '阿拉伯语'
      }
    ]
  }

2.在项目初始化时,为curLang默认赋值为英文,添加如下代码:

onLaunch: function() {
    // 展示本地存储能力
    this.globalData.curLang =
      this.globalData.langList[0]
  },
3.打开index.js文件,为页面curLang值设置app全局变量值,事实更新选择语言信息。在onShow函数中添加如下代码:
onShow:function(){
    if (this.data.curLang.lang !== app.globalData.curLang.lang) {
      this.setData({
        curLang: app.globalData.curLang
      })
    }
  },

4.打开change.wxml文件,为语言选择页添加页面渲染代码,添加如下代码:

<view class='container'>
  <text class='title'>翻译成</text>
  <view class='lang-list'>
      <view class='item' wx:for='{{langList}}' wx:key='index' wx:for-item='langItem' bindtap='onTapItem' data-index='{{index}}' data-lang='{{langItem.lang}}' data-chinese='{{langItem.chinese}}'>
        <view class='lang'>{{langItem.chinese}}</view>
        <text class='iconfont icon-ok' wx:if='{{index===curLang.index}}'></text>
      </view>
    </view>
</view>

5.打开change.wxss文件,为语言选择页添加样式文件,添加如下代码:

.container {
  background: #f8f8f8;
}
.title {
  background: white;
  border-bottom: 1px solid #ececec;
  padding: 20rpx 40rpx;
  color: #aaa;
  font-size: 28rpx;
}
.lang-list {
  background: white;  
}
.lang-list .item {
  padding: 20rpx 40rpx 20rpx 40rpx;
  background: white;
  display: flex;
  flex-direction: row;
  align-items: center;
  border-bottom: 1px solid #ececec;
  font-size: 32rpx;
}
.item .lang {
  flex: 1;
}
.item .iconfont {
  margin-left: auto;
  color: #aaa;
  font-size: 28rpx;
}

6.打开change.js文件,为页面添加数据绑定,在data对象中添加如下代码:

curLang: {},
 langList: app.globalData.langList

7.在Onload生命周期函数中添加如下代码,将app中设置的语言显示到页面中。

this.setData({
      curLang: app.globalData.curLang
    })

8.为列表添加onTapItem单击事件,将选中的数据保存进app全局变量中,添加如下代码:

onTapItem: function (e) {
    console.log(e)
    let langObject = e.currentTarget.dataset
    console.log(langObject)
    // 本地设置
    this.setData({
      curLangs: langObject
    })
    // 全局设置
    app.globalData.curLang = langObject
    wx.navigateBack({
      urdeltal: 1
    })
  },
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值