Ano*_*non 15 programming application-development qml ubuntu-sdk
你如何检查一个属性是否在 qml 中未定义?
这就是我想要做的:
Button {
id: myButton
text: if (text === "undefined"){"default text"}
}
Run Code Online (Sandbox Code Playgroud)
Kis*_*iel 12
尝试:
text: text ? text : "default text"
"undefined"只是一个引用的字符串表示,不引用任何东西,就像None, 或NULL其他语言一样。
===是严格的比较运算符,您可能需要阅读此线程:https : //stackoverflow.com/questions/523643/difference-between-and-in-javascript
import QtQuick 2.3
import QtQuick.Controls 1.2
Button {
id: myButton
text: text ? text : "default text"
}
Run Code Online (Sandbox Code Playgroud)
这个答案对我发出警告。
QML Button: Binding loop detected for property "text"
Run Code Online (Sandbox Code Playgroud)
更改text到modelText,而不是抛出一个错误。
ReferenceError: modelText is not defined
Run Code Online (Sandbox Code Playgroud)
这会为我停止 Javascript 执行;即不调用下一行。
通过 Javascript 设置它时也会发生同样的情况,但非常冗长。
import QtQuick 2.3
import QtQuick.Controls 1.2
Button {
id: myButton
text: "default text"
Component.onCompleted: {
if (modelText !== "undefined") {
myButton.text = modelText;
}
}
}
Run Code Online (Sandbox Code Playgroud)
typeof该typeof操作静音错误并工作正常。
import QtQuick 2.3
import QtQuick.Controls 1.2
Button {
id: myButton
text: "default text"
Component.onCompleted: {
if (typeof modelText !== "undefined") {
myButton.text = modelText;
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
34168 次 |
| 最近记录: |