2015-08-12 2 views
0
for (var i = 0; i < members.length; i++) { 

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

    } 

Действительно путать, как это могло быть неправильно ...TypeError: Не удается прочитать свойство «0» неопределенных AngularJS

«я» определяется в нуле не уверен, как он не смог найти значение.

Ниже приведен весь код моего контроллера.

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); 
     } 
    } 
]); 

UPDATE

Это то, что я был после:

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

     value = "value" + i; 

     console.log(value); 
}   
+2

Что такое 'value'? –

+0

Очевидно, что 'value' не определено при первом доступе – hindmost

+0

shouldnt' var value = value [i]; 'be' var value = members [i]; '? – Craicerjack

ответ

1

Согласно ваш комментарий на предыдущий ответ вы можете, как это

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

так, что вывод будет:

value0

value1

value2

.....

и если вы хотите, чтобы показать член значения

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

Это то, что я был после: for (var i = 0; i

2

Насколько я могу видеть, value имеет либо true или false. Так что вам нужно удалить строку:

value = value[i]; 

Я думаю, вы пытаетесь сделать, как members является тот, который имеет множество значений. Пожалуйста, измените свой код:

value = members[i]; 
+0

Мне нужно значение, позволяющее console.log работать. Я в основном пытаюсь сделать значение, которое выводит value1, value2, value3 и т. Д. Любые идеи, что мне нужно делать. –

+0

Просто дайте 'console.log (" Value: "+ i)'. Что будет делать. –

+1

Nice one thanks –

Смежные вопросы