2016-06-14 4 views
0

Мне нужно показать некоторую информацию об элементе, и если я нажму в списке других элементов, информация должна измениться (не так).Как использовать угловую переменную для управления индексом углового массива?

Показать первый элемент массива легко, если я использую 0 между [], но если я попытаюсь использовать $ scope.id = 0, ничего не произойдет.

HTML:

    <div class="col-md-5"> 
         <b>{{faturas[{{id}}].faturan}}</b> 
         <p>Vencimento: <span>{{faturas[{{id}}].venc}}</span></p> 
        </div> 
        <div class="col-md-7"> 
         <p>Período: {{faturas[{{id}}].ini}} a {{faturas[{{id}}].fim}}</p> 
         <p>Valor: R$ <span>{{faturas[{{id}}].valor}}</span></p> 
        </div> 

Node:

var queryString = 'SELECT * from faturas WHERE empID = '+usuarioSession.empID; 
connection.query(queryString,function(err,rows)  { 
    var ret = [];    
    for (var i = 0; i < rows.length; i++) {       
     ret.push ({ 
      index: i, 
      faturan: "Fatura "+(i+1), 
      venc: rows[i].fatDataVenc, 
      ini: rows[i].fatDataIni, 
      fim: rows[i].fatDataFim, 
      valor: rows[i].fatValor 
     }); 

    }   
    response.writeHead(200, {'Content-Type': 'application/json'}); 
    response.end(JSON.stringify(ret), 'utf-8'); 
}); 

Угловой:

app.controller('faberto',function($scope,$http){ 
    $scope.id = 0; 
    $http.get('/servico/faberto').success(function(data) { 
     $scope.faturas = angular.fromJson(data); 

    }); 
}); 
+1

Прежде всего, вы не можете использовать выражение '{{}}' внутри другого выражения, поэтому вместо '{{faturas [{{id}}]. Faturan}}', вы должны использовать '{{ faturas [ID] .faturan}} '. Тем не менее, главный вопрос заключается в том, почему вы не использовали 'ng-repreat' для такого рода операций, а не для доступа к элементам по индексу массива. – Claies

+0

@Claies правильный. Используйте ng repeat, а затем вы можете использовать $ index, если вам действительно нужен индекс. В большинстве случаев вы этого не делаете. –

+0

Спасибо, ребята! Я не знал, что лучше использовать ng-repeat в этом случае, как правило, я использую для печати всего «списка». –

ответ

2

Как @Claies сказал, вы не можете использовать {{ }} внутри другого! Проверьте эту ссылку: https://plnkr.co/edit/mHNaTXBNfzTGD3T0ujHY

Я создал mock, чтобы показать вам как ng-repeat будет более подходящим для ситуации!

Смежные вопросы