Мой вопрос заключается в следующем:
Изменения в значениях словаря JavaScript не изменяют фактическое сопоставленное значение, а скорее его собственную внутреннюю копию?Есть ли способ обойти это?
У меня есть словарь JavaScript, который содержит псевдонимы свойств объекта.Когда я присваиваю им значения, объекты в самом словаре изменяются, но он не распространяется наружу до фактического отображения, которое я хочу изменить.
У меня уже была эта проблема, когда точка доступа за пределами словаря исправила ее.Однако в этот раз я не могу сделать это из-за того, что вы не можете использовать точечный доступ, используя .text
, потому что он вызывает ошибку не может прочитать свойство undefined.
QML: Невозможно прочитать свойство 'xxx'of undefined
Мой код напоминает что-то из следующего примера, я скрыл его, чтобы защитить фактическую информацию, так что извините, если это неприглядный пример.onUpdate передает другой словарь, который я хочу привязать к локальному словарю .qml.
ControllerDisplay.qml
// ...
property alias id1: id_box.text
// ...
SomeBox
{
id: id_box
text: "some text"
}
main.qml
ControllerDisplay{
id: controller
}
// ...
Connections
{
target: myguimodel
onUpdate:
{
var dict = { "ID1" : controller.id1}
for (var key in updates)
{
dict[key] = updates[key] // does NOT change the value in ControllerDisplay
controller.id1 = updates[key] // DOES change the value ControllerDisplay
}
}
}