javascript - 点击列表某一项,如何请求里面的详细数据并展现出来
黄舟
黄舟 2017-04-11 12:11:47
[JavaScript讨论组]

点击列表某一项,如何请求里面的详细数据并展现出来

我现在这里的APP列表是ng-repeat循环出来的,但是我想点击每个列表的时候弹出另一个页面,这个页面里面的数据是需要ajax请求出来的比如这样,angularjs应该怎么写呢?新手求助
贴上部分代码:
列表的json:

[
  {
    "name": "去哪儿",
    "imageUrl": "images/icon_qunaer.png",
    "intro": "这是一款很搞笑的游戏",
    "id":1,
    "salary":20.00,
    "remain":12,
    "category":"旅行",
    "download":"http://www.baidu.com"
  },
  {
    "name": "水滴",
    "imageUrl": "images/icon_water.png",
    "intro": "这是一款很搞笑的游戏",
    "id":2,
    "salary":10.00,
    "remain":2222,
    "category":"财务",
    "download":"http://www.baidu.com"
  }
]

点击后详细的弹出页:

[
  {
    "name": "去哪儿",
    "imageUrl": "images/icon_qunaer.png",
    "appSize": "112M",
    "id":1,
    "appRank":22,
    "remain":12,
    "appDawnDesc":"想要下载,必须先做十个俯卧撑",
    "keyWord":"旅行"
  }
]

HTML部分:

{{list.name}}

{{list.category}}剩余{{list.remain}}

angularjs部分,写了一部分 不知道怎么写了,求大神指条明路。就是不知道这么把数据传到点击之后的详细页面上:

$http.get('data/gameList.json').success(function(data){
            $scope.games = data;
            $scope.orderProp = "rank";
            $scope.openDeatil = function (list) {
                $(document).on("pageInit", function(e, pageId, $page) {
                    if(pageId == list.id) {

                    }
                });
                $timeout(function () {
                    $.router.load("/taskDeatil.html")
                },10);
            }
        });  
        //初入angularjs,还请轻喷,还用了淘宝的sui
黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(4)
PHPz

ng-click要放在每个要点击的层上,e.g.
html:

<p class="row normal" ng-repeat="list in games" >
     <!--每个ng-click事件在显示单独的层上-->
         <p ng-click="openDeatil(list.id)">
            <p class="col-20 taskIcon">
                <p class="logoCnt">
                    <img ng-src="{{list.imageUrl}}">
                </p>
            </p>
            <p class="col-50 desc">
                <p class="taskName textBlack size_08">{{list.name}}</p>
                <p class="taskDesc textGrey size_06"><span class="button button-round category">{{list.category}}</span>剩余<span>{{list.remain}}</span>个</p>
            </p>
            <p class="col-30 down_btn">
                <p>
                    <button class="button button-round">{{'+'+list.salary+'元'}}</button>
                </p>
            </p>
            </p>
        </p>

js:

    $scope.openDetail = function(id){
        $http.get('data/gameList.json?id='+id).success(function(data){
            $scope.games = data;
            $scope.orderProp = "rank";
            $timeout(function () {
                    $.router.load("/taskDeatil.html")
                },10);
        });  
    }
ringa_lee

给你个思路吧
1、循环输出的标签用href="#/personal/production?args=vars"进行跳转,附加参数就行了,这个参数可以在另一个页面提取出来
2、就像你用的ng-click,在点击事件中$location.path('/design/' + data.id);这个data.id可以是你遍历的每个列表的id
看你的需求,第二种方法非常适合

怪我咯

按照你现在的写法,在点击事件中把所选条目都传给controller。第二步用location.path进行页面跳转,跳转页面的时候已经把所点击的条目的id传给detail页面的controller。在detail controller接收到id之后(接收的方法ui-route 和ngRoute大概相同,自己查下angular路由就知道怎么用了),去请求数据,显示到页面就行了。

怪我咯

列表中的每一项有对应的id,出发点击事件的时候传入id参数,用$state.go 传递id这个参数,再在详情页面通过id请求详细的数据,显示出来就好了吧

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号