Модель, которую вы используете во внешнем интерфейсе, не имеет отношения к значению, которое вы получаете из внутреннего интерфейса. Модель предназначена только для утверждения типа данных, которые вы пытаетесь назначить переменной.
Но если вы видите в бэкэнде
res.status(200).json({
message:'Bracket from node',
bracket:bracket
});
, вы явно назначаете объект к свойству под названием bracket
, NOT brackets
. Для большей уверенности, значение, которое вы получаете от бэкэнда, будет следующим:
{
message:'Bracket from node',
bracket: [{
id: 'alksdfjalskj',
bracketTitle:'bracket from node',
bracketBuyIn: "2",
bracketPlayer1:'name',
bracketPlayer2:'name2',
bracketPlayer3:'name3',
bracketPlayer4:'name4',
bracketPlayer5:'name5',
bracketPlayer6:'name6',
bracketPlayer7:'name7',
bracketPlayer8:'name8'
}]
}
Так оно называется bracket
БЕЗ a s
.
Теперь перед -end part.
this.brackets = bracketData.brackets;
Здесь LHS this.brackets
наверняка на 100% соответствует модели, которую вы определили. Он не перескакивает через пяльцы для присвоения значений, которые не соответствуют определенной вами модели Bracket
. Но RHS bracketData.brackets
ни на процент не заботится о вашей модели. Это не обязательно. Он поступает из бэкэнда, и это единственное, что он соответствует.
Если вы сделаете console.log(bracketData)
, вы увидите следующее
{
message:'Bracket from node',
bracket: [{
id: 'alksdfjalskj',
bracketTitle:'bracket from node',
bracketBuyIn: "2",
bracketPlayer1:'name',
bracketPlayer2:'name2',
bracketPlayer3:'name3',
bracketPlayer4:'name4',
bracketPlayer5:'name5',
bracketPlayer6:'name6',
bracketPlayer7:'name7',
bracketPlayer8:'name8'
}]
}
Теперь, пожалуйста, посмотрите снова внимательно. Вы никогда не сможете найти недвижимость brackets
. Потому что вы называете это bracket
в бэкэнде.
Итак, когда вы пытаетесь bracketData.brackets
, в этом свойстве нет данных. С таким же успехом это могло быть bracketData.magicData
для всех Javascript забот. Он БУДЕТ вернет undefined
для неопределенных свойств.