1、外部文件 /util/util.js
function convertToStarsArray(stars) { //把星级存到数组中 var num = stars.toString().substring(0, 1); var array = []; for (var i = 1; i <= 5; i++) { if (i <= num) { array.push(1); } else { array.push(0); } } return array; } module.exports = { convertToStarsArray: convertToStarsArray }
2、pages/movies/movies.wxml
var util = require('../../utils/util.js')
...
processDoubanData: function (moviesDouban, settedKey, categoryTitle){
var movies=[];//定义数组存储处理数据的容器
for (var idx in moviesDouban.subjects) {
var subject = moviesDouban.subjects[idx];
//文章标题
var title = subject.title;
if (title.length >= 6) {
title = title.substring(0, 6) + "...";//截取文章前六个字
}
var temp = { //所有数据放到temp中
stars: util.convertToStarsArray(subject.rating.stars),
title: title,
average: subject.rating.average,
coverageUrl: subject.images.large,
movieId: subject.id
}
movies.push(temp) //所有数据存储到movies中
var readyData = {};
readyData[settedKey] = {
categoryTitle: categoryTitle,
movies: movies
}
this.setData(readyData);
}
}
3、星级评分思路:把分数转换为数组 如共5星 若有3星 则数组为[1,1,0]
wxml文件使用wx.if进行判断并显示
<view class="stars"> <block wx:for="{{stars}}" wx:for-item="i"> <image wx:if="{{i}}" src="/images/icon/star.png"></image> <image wx:else src="/images/icon/none-star.png"></image> </block> </view>
注意:data传值新方法 (movie传star)
<
template
is=
"starsTemplate"
data=
"{{stars:stars, score: average}}"
/
>