반응형
변수는 angular.에서 접근할 수 없습니다. 각각에 대해
서비스가 있습니다.
app.service('myService', function() {
this.list = [];
this.execute = function() {
//this.list is reachable here
angular.forEach(AnArrayHere, function(val, key) {
//this.list is not reachable here
});
}
}
컨트롤러에서도 접근이 가능합니다.
function Ctrl($scope, myService) {
$scope.list = myService.list;
}
누가 각도 내에서 "this.list"에 연결할 수 없는 이유를 설명해 줄 수 있습니까?각각에 대해 그리고 "this.list"에 어떻게 액세스할 수 있습니까?
의 마지막 매개 변수입니다.angular.forEach
(http://docs.angularjs.org/api/angular.forEach) 기능은 다음과 같은 맥락은 다음과 같습니다.this
. 그래서 당신은 이런 것을 원할 것입니다.
app.service('myService', function() {
this.list = [];
this.execute = function() {
//this.list is reachable here
angular.forEach(AnArrayHere, function(val, key) {
//access this.list
}, this);
}
}
이유this.list
함수 호출의 컨텍스트가 변경되었기 때문에 foreach에서 액세스할 수 없습니다.그것은 내부에서 작동합니다.execute
메서드는 목록과 같은 컨텍스트의 일부입니다.
모든 폐쇄로 인해 나는 다음을 배정할 것입니다.this
나중에 호출할 수 있는 다른 변수의 컨텍스트입니다.이와 같은 것:
app.service('myService', function() {
var self = this;
self.list = [];
self.execute = function() {
//this.list and self.list are reachable here
angular.forEach(AnArrayHere, function(val, key) {
//self.this == this.list
});
}
}
이는 각 메서드 호출의 일부로 컨텍스트를 전달하는 것보다 약간 더 일반적인 솔루션이며 다른 종결 관련 상황에서 작동합니다.
언급URL : https://stackoverflow.com/questions/15013016/variable-is-not-accessible-in-angular-foreach
반응형
'code' 카테고리의 다른 글
iframe의 내용을 확장하려면 어떻게 해야 합니까? (0) | 2023.11.04 |
---|---|
argv 변경이 가능한가요 아니면 수정본을 만들어야 하나요? (0) | 2023.11.04 |
Backbone.js 및 jQuery (0) | 2023.11.04 |
getActionBar()가 null을 반환합니다. (0) | 2023.11.04 |
pom.xml에서 목표 지정 (0) | 2023.11.04 |