恢复ng-repeat中的字段值

时间:2014-04-04 18:57:49

标签: angularjs scope angularjs-scope angularjs-ng-repeat ng-repeat

对不起英国人,我是法国学生:(

我想用AngularJS为项目创建一个评论系统。

我想恢复一个处于ng-repeat循环中的对象的值。

JSON:https://drive.google.com/file/d/0Bzj557dnogzOd0ZUMnZ1cWZLSFU/edit?usp=sharing

HTML:

<section ng-controller='AnnouncesCtrl' ng-show='!showActions' ng-swipe-left='showActions=true'>

<header class='header'>
    <span class="return"><a href='#practice' class='title_link'>6</a></span> Petites annonces <span class="new"><a href='#newAnnounce'>8</a></span>
</header>

<div class='loader' ng-show='loader'></div>

<section class='panel'>
    <div ng-repeat='a in dept.announce' class='announces'>
        <span class='title'>{{a.name}}</span>
        <br/>
        <span class="date">{{a.date}}</span>
        <hr>
        <span class="msg">{{a.desc}}</span>
        <hr>
        <div class="showrep" ng-click="show=true" ng-show='!show'>Montrer les réponses</div>
        <div class="allrep" ng-show="show" ng-repeat='answer in a.answers'>{{answer}}<br/></div>
        <div class="formrep">
            <form ng-submit='addComments()'>
                <input type='text' placeholder='Écrire une réponse'><input type='submit' ng-click='a.btn={{a.id}}' value='Répondre'>
            </form>
        </div>
    </div>
</section>

JS:

function AnnouncesCtrl($scope,$http,$rootScope,$location){

$scope.getInfos=function(){

    var dept="http://agence-pandor.fr/getAnnounces/index.php";

    $scope.loader=true;
    $http.get(dept)
        .success(deptSuccess)
        .error(function(){
            $scope.loader=false;
            alert('Impossible de récupérer le numéro étudiant. Veuillez vous reconnecter');
            $location.url("/connexion"); // On redirige
    })
}

deptSuccess=function(response){
    $scope.loader=false;
    $scope.dept=response;
}

$scope.getInfos();

$scope.addComments=function(){
    alert($scope.dept.announce.btn);
}

}

截图: https://drive.google.com/file/d/0Bzj557dnogzOUDlfNWR3eEthQzA/edit?usp=sharing

1 个答案:

答案 0 :(得分:1)

我不太明白你的项目是什么(我不懂法语)。你正在迭代数组“announce”,这应该是“dept”的属性。当您输入:

ng-repeat = 'a in dept.announce'

你正在为ng-repeat创建一个临时变量“a”(就像for循环中的counter变量一样)。

如果“btn”应该是唯一值,则使用:

ng-click = "btn = a.id"

或者如果“btn”特定于“a in announce”的每个值,请使用:

ng-click = "btn[$index] = a.id";

您可以使用$ scope.btn

在JS文件中获取btn的值