Я пытаюсь использовать охранников ролей, и я хочу отправить несколько ролей одновременно, но проблема в том, что когда я отправляю информацию из файла app.routing, я не получаю ожидаемый результат, если я объявляю таблицу внутри файла guard.ts, она работает нормально, и я не знаю почему.
вот как я отправляю роли, которые хочу отправить в app.routing.ts:
canActivate: [AfterLoginGuard],
data: {
expectedRole: ['role1','role2']
}
и в файле guard.ts:
, когда я объявляю таблицу как:
let expectedRole = ['role1','role2'];
, она работает нормально, и я перешел на нужный мне маршрут
Но если получить данные из app.routing.ts как:
let expectedRole = route.data.expectedRole;
, это не работает. Это функция, с которой я работаю:
for (let child in expectedRole ) {
let test = expectedRole[child]; // to see if the value is readable or not
console.log(test);
if ( 'role2'=== expectedRole[child]) {
console.log(expectedRole[child]);
resolve(true);
}
}
NB: 1) когда я отправляю только одну роль, что означает, что я не использую l oop, она работает нормально. 2) чего я не понял, так это того, что когда я объявляю массив внутри файла guard.ts в консоли, я получаю две роли в переменной test, и тогда она работает. Но когда я получаю роли из app.routing.ts, я получаю в консоли что-то вроде этого:
role1
role2
r
o
l
e
2 // if I am wanting the role 2 for example
это как будто даже после того, как if найти правильное значение, он считает его новым массивом .
не могли бы вы рассказать мне, почему это не работает, когда я получаю роли из app.routing.ts?