TypeError:无法读取未定义的AngularJS的属性“0”

时间:2015-08-12 13:35:32

标签: javascript angularjs

    for ( var i = 0; i < members.length; i++ ) {

        var value = value[i];
        console.log(value);

    }

真的很困惑这可能是错误的......

'i'定​​义为零,因此不确定它是如何找不到该值的。

以下是我的整个控制器代码。

 angular.module(module.name).controller(module.name + '.c.' + current.name, [
        '$scope',
        '$stateParams',
        'members',
        'assessment', 
        '$localStorage',  

    function (scope, stateParams, members, assessment, $localStorage) {
        scope.members = members;        
        // Asessment and item scope variables
        scope.assessment = assessment;             

        scope.active = $localStorage.$default({
            value : false
        });  

        console.log(members.length);      

        // This isn't doing anything much atm apart from firing the 
        // console logs
        scope.change = function (active) {

            if (active) {
                scope.active = $localStorage.$default({
                    value : true
                });
                console.log('hi 1');
            } else {
                scope.active = $localStorage.$default({
                    value : false
                });
                console.log('hi 2');
            }
        };   

        for ( var i = 0; i < members.length; i++ ) {

            var value = value[i];
            console.log(value);
        }
    }
]);

更新

这就是我追求的目标:

for ( var i = 0; i < members.length; i++ ) {

        value = "value" + i;

        console.log(value);
}          

2 个答案:

答案 0 :(得分:2)

据我所知,valuetruefalse。所以你需要删除这一行:

value = value[i];

我想你是想做的,因为members是一个有数组的人。请将您的代码更改为:

value = members[i];

答案 1 :(得分:1)

根据您对之前回答的评论,您可能需要这样

for ( var i = 0; i < members.length; i++ ) {
        console.log('value' + i);
}

所以输出将是:

value0

值1

值2

.....

如果要显示成员值

for ( var i = 0; i < members.length; i++ ) {
     console.log(members[i]);
}