这是以下代码的结果:
import QtQuick 2.8
Item {
Reusable {
index: 1234 // reusable with a custom index
}
ListView {
anchors { fill: parent; margins: 20; topMargin: 50 }
model: 3
// Reusable with an index given by the ListView
delegate: Reusable {
index: index // <- does not work, both 'index' point to
// the index property
}
}
}
import QtQuick 2.8
Text {
property int index
text: "Line " + index
}
ListView
在每次迭代时为变量index
分配0,1,2等。但是,因为我将其分配给属性,所以此变量被遮蔽,我无法访问它。
如果我从property int index
删除Reusable.qml
,则ListView
有效,但在ListView之外使用Reusable
不再有效。
有没有办法分配index: index
?
(我可以重命名可行的属性,但我想避免这种情况。)
答案 0 :(得分:5)
您可以通过model
前缀来解决与模型相关的数据。
ListView {
model: 3
delegate: Reusable { index: model.index }
}
我的建议是即使没有含糊不清也会这样做,作为可读性的手段。即阅读代码的开发人员可以立即看到哪些数据是本地属性,哪些数据是由模型提供的。