안녕하십니까. $ scope에 바인드하려면 루프 외부에 필요한 angular.forEach 루프 내부에 변수를 만들었지 만,이 변수를 벗어나는 방법을 모르겠습니다. 변수 miAlumno.전역 변수에 angular.forEach 루프에 로컬 변수를 넣으십시오.
감사합니다.
'use strict';
angular.module('jarciaApp')
.controller('alumnoCtrl', function($routeParams, $firebaseArray) {
var ref = firebase.database().ref('PrimeroA');
var JarciaArray = $firebaseArray(ref);
var id = $routeParams.id;
var curso = $routeParams.curso;
var miAlumno;
JarciaArray.$loaded()
.then(function(miAlumno) {
angular.forEach(JarciaArray, function(alumno, miAlumno) {
if (alumno.Id == id) {
var miAlumno = alumno;
}
})
});
console.log(miAlumno);
});
내부에'var'을 사용하지 마십시오 ('miAlumno'를 재정의했습니다). 그러나'$ load()'가 비동기이기 때문에'console.log'가있는 곳에서도 값을 기록하지 않습니다. '$ scope'를 삽입하면 루프 내에서'$ scope.miAlumno'를 할 수 있습니다. –
나는 '컨트롤러'라고 불리는 방법을 모르므로 $ 범위를 삽입하지 않습니까? this.variable = ....을 사용하여 범위에 데이터를 바인딩합니다. 하지만 루프 내부에서 사용할 수 없으므로 루프 내부에서 사용할 수 없습니다. –
좋아요, 그 다음 루프 바깥쪽에'var me = this;'를 추가하고'me.miAlumno = alumno;'를 루프에 추가하십시오. 스페인어로 말하면'var esto = this;'가 더 좋습니다 :) . –