0
내 서비스를 통해 일반 json 데이터를 가져온 다음 생성자 및 프로토 타입 메서드를 통해 일부 동작을 연결합니다. 이 개체가 서비스에서 컨트롤러로 반환되면 개발자 도구를 통해 정확한 '클래스'이름을 볼 수 있지만 사용 가능한 메서드는 없습니다. anglejs 앱 외부에서 클래스와 프로토 타입을 테스트 할 때 예상대로 작동합니다. 아래 내 서비스 :컨트롤러의 프로토 타입 메서드가 누락되었습니다.
app.factory('characterService', function($http) {
var _chars = [];
return {
getCharacters: function() {
return $http.get('app/resources/charsheets.js').then(function(d) {
_chars = [];
var data = d.data.characters;
for (var i = 0; i < data.length; i++) {
_chars.push(new Character(data[i]));
}
return _chars;
});
}
};
Character.prototype.getStatBonus = function(statAbbr) {
var bonus = 0;
if (statAbbr && statAbbr != '') {
var baseStats = this["baseStats"];
for (var i = 0; i < baseStats.length; i++) {
if (baseStats[i].abv == statAbbr) {
//More stuff normally happens, but for the sake of brevity
//it has been reduced to a simple assignment
bonus = baseStats[i].totalBonus;
break;
}
}
}
return bonus;
};
});
function Character(raw) {
//Stuff here
}
내 아주 기본적인 컨트롤러 :
app.controller('characterController',function($scope,characterService)
{
$scope.model = {};
characterService.getCharacters().then(function(data){
$scope.model.characters = data;
$scope.model.currentCharacter = data[0];
});
});
일부 샘플 마크 업 :
<div>
{{model.currentCharacter.getStatBonus('Ag')}}
</div>
내가 점점 오전 오류가 getStatBonus
에도 불구하고, 정의되지 않은 점이다 객체는 Character 유형 (개발자 도구를 통해 확인 됨)입니다.
나는 가능한 것을 시도하고 있습니까? 감사합니다
당신이 당신의 코드를 게시하고 그것을 할 수있는 장소에 도착 일을 각 방법입니다 있는지 확실하지 않습니다. –
@ PM77-1 자, 가야겠다. – link64
팩토리 함수에서 '반환'할 때 '문자'가 '함수 호이스트'로 인해 정의되지만 문자 프로토 타입을 수정하는 코드는 실행되기 전에 실행되지 않습니다. – stooboo