Рендеринг сложных моделей [состояний] с представлениями amperstand.js [подпредставления]
- разработчик марионетки \ магистрали (изо всех сил) пытается принять амперсанд
Дана сложная модель с вложенными свойствами (ниже). Какова лучшая практика для визуализации глубоко вложенного макета.
- mainView
---- userInfoView
------ socialInfoView
-------- socialCollectionsView
государство амперсанда не поддерживает "глубокую модель". это кажется довольно плоским (один уровень, а затем вы можете использовать свой собственный тип, например 'reviewModel'). <- я хочу избежать создания этих новых типов. я знаю, что есть детская вещь, но я не думаю, что это применимо.
По сути, как я могу сохранить свою сложную модель, не нарушая ее, и чтобы мой вложенный (представления / подпредставления) макет был четким и читаемым.
{
firstName: 'John',
lastName: 'Doe',
"social": {
"linkedin": {
"connections": 123,
"positions": [{
image: 'bla.jpg'
"title": "CTO & Co - founder"
}, {
image: 'bla2.jpg'
"title": "prime minister"
}, ],
"friends": [{
name: james,
a: 'b'
}, {
name: jane,
x: 'y'
}],
"languages": ['english', 'russian']
},
"twitter": {
"connections": 122
}
},
}
2 ответа
Если вам не нужно следить за изменениями в глубоких данных, то вы можете просто использовать тип данных "объект" для реквизита, такого как "социальный", и для доступа, например, так this.model.social.linkedin.connections
по вашему мнению.
В противном случае вам нужно использовать дочерний хеш (код) или тип данных (код) "state", потому что они автоматически устанавливают слушателей.
Ampersand требует от вас явного понимания (новых типов, которых вы пытаетесь избежать), когда вы хотите наблюдать изменения в глубоко вложенных данных.
Путь Ampersand заключается в том, чтобы по возможности предпочитать маленькие модели / представления с одним интересом и составлять неизбежно сложные из небольших и небольших.
"state.children" может быть тем, что вы ищете. Или попробуйте "реквизит" типа "состояние".