Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 控制器中缺少原型方法_Javascript_Angularjs_Angularjs Controller - Fatal编程技术网

Javascript 控制器中缺少原型方法

Javascript 控制器中缺少原型方法,javascript,angularjs,angularjs-controller,Javascript,Angularjs,Angularjs Controller,我通过我的服务检索纯json数据,然后通过构造函数和原型方法将一些行为附加到它。 当这个对象从服务返回到控制器时,我可以通过开发人员工具看到它具有正确的“类”名称,但是没有可用的方法。 在angularjs应用程序之外测试我的类和原型时,它们按预期工作。 以下是我的服务: app.factory('characterService', function($http) { var _chars = []; return { getCharacters: functi

我通过我的服务检索纯json数据,然后通过构造函数和原型方法将一些行为附加到它。 当这个对象从服务返回到控制器时,我可以通过开发人员工具看到它具有正确的“类”名称,但是没有可用的方法。 在angularjs应用程序之外测试我的类和原型时,它们按预期工作。 以下是我的服务:

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
   }
一些示例标记:

<div>

    {{model.currentCharacter.getStatBonus('Ag')}}

</div>

{{model.currentCharacter.getStatBonus('Ag')}
我得到的错误是
getStatBonus
未定义,即使对象是字符类型(通过开发工具确认)

我想做的事情可能吗?
谢谢你找到了我的问题。。。我在服务主体中声明了构造函数和原型方法


我在它之外声明了它们,但不确定这是否是一种有角度的处理方式

到你可以发布代码并执行的地方。@PM77-1你看,我希望它能有所帮助!当您在工厂中“返回”时,函数“Character”是因为“function highting”而定义的,但是修改字符原型的代码没有被执行,因为您在它前面“return;”-)
<div>

    {{model.currentCharacter.getStatBonus('Ag')}}

</div>