2017-02-09 3 views
0
{ 
    "data": { 
    "id": 3, 
    "name": "random", 
    "email": "[email protected]", 
    "created_at": "2017-02-06 18:16:06", 
    "updated_at": "2017-02-06 18:16:06", 
    "roles": [ 
     { 
     "id": 1, 
     "name": "ADMIN", 
     "access": { 
      "role4": true, 
      "role3": true, 
      "role2": true, 
      "role1": true 
     }, 
     "created_at": "-0001-11-30 00:00:00", 
     "updated_at": "-0001-11-30 00:00:00" 
     } 
    ] 
    } 
} 

Я пытаюсь получить доступ «доступ» и получить результаты истина/ложь, но она не работаетJavascrypt (VueJS) Объект с массивом

currentUser.roles[0].access['role1']; 

Ошибка: Не удается прочитать свойство «0» неопределенной

но

console.log(currentUser.roles[0].access['role1']); // returns true 

и

currentUser.roles // gives me all the roles 

Данные передаются передним интерфейсом с помощью Laravel Transformer.

Примечание: Использование VueJs и это внутренние методы:

+0

Не правда ли data.roles [0] .access [ 'role1']? – choasia

+0

no is undefined –

+0

Я имею в виду ... откуда происходит currentUser? Я не могу найти его в вашем объекте – choasia

ответ

0

Поскольку я не вижу весь код, могу предположить. Сначала вы должны сочетать данные с

this.currentUser = data //data that you retrieve 

, а затем получить доступ к нему:

this.currentUser.roles[0].access['role1'] 
0

В VueComponent контексте data атрибуты распространены в его this контексте. Поэтому:

this.roles[0].access['role1'] 
+0

, но сначала мне нужно обратиться к зарегистрированному в данный момент пользователю. Вот почему currentUser. –

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