Мне нужно показать некоторую информацию об элементе, и если я нажму в списке других элементов, информация должна измениться (не так).Как использовать угловую переменную для управления индексом углового массива?
Показать первый элемент массива легко, если я использую 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);
});
});
Прежде всего, вы не можете использовать выражение '{{}}' внутри другого выражения, поэтому вместо '{{faturas [{{id}}]. Faturan}}', вы должны использовать '{{ faturas [ID] .faturan}} '. Тем не менее, главный вопрос заключается в том, почему вы не использовали 'ng-repreat' для такого рода операций, а не для доступа к элементам по индексу массива. – Claies
@Claies правильный. Используйте ng repeat, а затем вы можете использовать $ index, если вам действительно нужен индекс. В большинстве случаев вы этого не делаете. –
Спасибо, ребята! Я не знал, что лучше использовать ng-repeat в этом случае, как правило, я использую для печати всего «списка». –