必须简单..但我是Angular的新手

时间:2015-02-23 19:49:56

标签: angularjs http repeat

这是我遇到的问题......

我正在返回一个http来重复显示一些数据..

$scope.search = function() {    
    $http.get("attemptsJSON.php?q="+$scope.svalue)
            .success(function(response) {   
            $scope.attempts = response;

            });
        }'

该数据我有一个点击功能,可以返回更多数据。但是这些数据是根据以前的数据确定的,这些数据就像这样有一个链接。

$scope.getAllAtt = function(a) {
    $http.get("allAttemptsJSON.php?a="+a)
            .success(function(response) {   
        $scope.allAttempts=response;
            });
        }

问题是返回的数据显示在我的初始重复的每个实例上,我只希望它显示在单击的实例下面。我看了很多不同的可能性,比如模板缓存,但我不知道如何解决这个问题我对Angular有点新,我想我需要使用指令,但指令让我感到困惑。请帮忙。

这是HTML

        <tr ng-repeat-start="att in attempts">
            <td class="expand-col"  ng-click="getAllAtt(att.action_id)"><i class="fa fa-plus-circle"></i></td>          
            <td>{{att.cust_no}}</td>
            <td>{{att.emp_name}}</td>
            <td>{{att.attemptdt}}</td>
            <td>{{att.note}}</td>
            <td>{{att.callstatus}}</td>
        </tr>

        <tr ng-repeat-end ng-repeat="x in allAttempts">
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td>{{x.note}}</td>
            <td></td>
        </tr>'

1 个答案:

答案 0 :(得分:1)

如果您想要一组仅属于重复项目中的一个项目的值,那么您应该将这些值分配给重复项目,而不是整个范围:

<tr ng-repeat-start="att in attempts">
    <td class="expand-col"  ng-click="getAllAtt(att)">
      <i class="fa fa-plus-circle"></i></td>          
    <td>{{att.cust_no}}</td>
    <td>{{att.emp_name}}</td>
    <td>{{att.attemptdt}}</td>
    <td>{{att.note}}</td>
    <td>{{att.callstatus}}</td>
</tr>
<tr ng-repeat-end ng-repeat="x in att.allAttempts">
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td>{{x.note}}</td>
    <td></td>
</tr>
$scope.getAllAtt = function(attempt) {
    $http.get("allAttemptsJSON.php?a=" + attempt.action_id)
    .success(function (response) {   
        attempt.allAttempts = response;
    });
};

这包括一些简化,因为我无法访问您的HTTP源或CSS,但它演示了这个概念:

http://jsfiddle.net/femt86u9/