小程序--引用外部js方法

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}}" / >

猜你喜欢

转载自blog.csdn.net/lsy__lsy/article/details/80495964