我的委托组件的索引属性在console.log()
函数中使用时无法识别:
onClicked: {
identities.qml_del_account(index);
console.log(index);
}
/*Application output:*/
qrc:/Accounts2.qml:74: ReferenceError: index is not defined
第74行是这样的:
console.log(index);
为什么它适用于第一行但是在第二行失败?这两行都位于相同的javascript函数中。
完整的QML代码是:
Identities {
id: identities
}
ListView {
id: list_identities
width: list_area.width
height: 100
model: identities
delegate: Rectangle {
id: identities_delegate
height: 40
width: parent.width
Text {
id: identities_item
height: parent.height
anchors.left: parent.left
width: 100
text: email
}
Image {
source: "qrc:/images/dots-menu.png"
id: toolbtn_img
anchors.right: parent.right
width: 24
height: 24
MouseArea {
width: parent.width
height: parent.height
onClicked: {
identities.qml_del_account(index);
console.log(index);
}
}
}
}
}
该模型在C ++中定义,并且它包含了函数qml_del_account()
,该函数工作正常,我并没有抱怨它。
答案 0 :(得分:1)
我的猜测是:qml_del_account
删除当前委托的模型条目,随后将其删除,因此日志将在不再存在的对象模型条目上下文中执行。
尝试颠倒日志的顺序并调用模型的函数。
一般情况下,我还建议通过model
访问者引用代表中的模型数据来提高可读性,例如model.index