import QtQuick 2.3
import QtQuick.Controls 1.2
Button {
id: myButton
text: text ? text : "default text"
}
Esta resposta lança um aviso para mim.
QML Button: Binding loop detected for property "text"
Em vez disso, o text
to modelText
gera um erro.
ReferenceError: modelText is not defined
Isso interrompe a execução do Javascript para mim; ou seja, a próxima linha não é chamada.
Via Javascript
O mesmo acontece ao configurá-lo via Javascript, mas é bastante detalhado.
import QtQuick 2.3
import QtQuick.Controls 1.2
Button {
id: myButton
text: "default text"
Component.onCompleted: {
if (modelText !== "undefined") {
myButton.text = modelText;
}
}
}
Usando typeof
O operador typeof
silencia o erro e funciona conforme o esperado.
import QtQuick 2.3
import QtQuick.Controls 1.2
Button {
id: myButton
text: "default text"
Component.onCompleted: {
if (typeof modelText !== "undefined") {
myButton.text = modelText;
}
}
}