AngularJs 实现nba选票demo

作者 Mr.Woo 日期 2016-12-11
AngularJs 实现nba选票demo

Angular实现nba选票demo


一、获取players.json数据

1.利用php文件将players.json导入输出

echo file_get_contents('players.json');

2.通过$http服务获取到players.php里面的从json文件读取到的数据

$http({
            url:'player.php',
            method: 'get'
        }).success(function (res) {
            /*已经拿到数据*/
            console.log(res);
            $scope.reslist = res
        }).error(function (err) {
            console.log('请求失败');
        })

二、将获取到的数据展示输出页面

使用ng-repeat遍历reslist里面所有数据,并展示页面

<ul class="title info" ng-repeat="play in reslist ">

    <li style="text-align: center;"><img  style="width: 60px; height: 40px"alt="" ng-src="img/players/{{play.thumb}}"></li>
    <li><a href="#">{{play.name}}</a></li>
    <li>{{play.position}}</li>
    <li>{{play.num}}</li>
    <li>{{play.team}}</li>
    <li>{{play.votes}}</li>

</ul>

三、实现对数据搜索筛选的功能

使用过滤器:filter

filter:’search’ 全文检索

filter:{name:search} 指定字段进行搜索

filter:{name:search}:true 精确查找

在这里我们使用精确查找,在使用精确查找前我们需要对数据实现双向绑定,即在搜索框中输入内容,过滤器来获取到内容。

<input type="text" ng-model="search">

最后对reslist进行精确过滤

ng-repeat="play in reslist | filter: {name: search}:true"

四、实现对数据进行排序功能

使用过滤器:orderBy

当然我们同样先对数据实现双向绑定

<select ng-model="order">
<ul class="title info" ng-repeat="play in resList | filter:{name:searchC} | orderBy:order">

完成之后,在select中会出现一种情况,当我们没有对ng-model初始化或者没有给其中的option选项给定个初始值时,会导致select选项一出来是空值。

第一种解决方案

使用select时,要求对指定的值ng-model给定一初始值
<select ng-model="order" ng-init="order='name'">  
    <option value="-votes">票数</option>
    <option value="name">姓名</option>
    <option value="num">号码</option>
</select>-->

第二种解决方案

<select ng-model="order">
     <option value="">请选择</option>
     <option value="-votes">票数</option>
     <option value="name">姓名</option>
     <option value="num">号码</option>
</select>