답변:
시험:
text: text ? text : "default text"
"undefined"
은 참조 None
또는 NULL
다른 언어로 참조하지 않는 참조의 문자열 표현 일뿐 입니다.
===
엄격한 비교 연산자 이므로이 스레드를 읽을 수 있습니다 : /programming/523643/difference-between-and-in-javascript
if (text) { text } else {"default text"}
정확히는. 정의되지 않은 if (object)
경우 false로 평가됩니다 object
. 포인터의 값이 0 (NULL) 인 경우 false로 평가되는 C 스타일 if (pointer)에 대한 유사한 해킹. 그 지적이의 가치가 text
버튼의 텍스트 속성에 사용되는 변수는 외부 범위에서 가져옵니다. 다음과 같이 훨씬 더 명확 해집니다. text: inText ? inText : "default text"
또는if(inText) { text } else {"default text"}
if (text is true) then {text = text} else {text = "default text"}
.-이것이 정확합니까?
if (text is true)
. if (text *is*)
또는 로 생각하기가 더 쉽다는 것을 알게되었습니다 if (text exists)
. 또 다른 좋은 소스 : developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
import QtQuick 2.3
import QtQuick.Controls 1.2
Button {
id: myButton
text: text ? text : "default text"
}
이 대답은 나에게 경고를 던집니다.
QML Button: Binding loop detected for property "text"
변경 text
으로 modelText
대신하면 오류가 발생합니다.
ReferenceError: modelText is not defined
이로 인해 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;
}
}
}
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;
}
}
}