显示重复键的QML ListModel
将对象追加到ListModel时,一个键显示了2次 这是我的密码:显示重复键的QML ListModel,qml,qt5.7,Qml,Qt5.7,将对象追加到ListModel时,一个键显示了2次 这是我的密码: import QtQuick 2.0 import QtQuick.Window 2.0 Window { visible: true width: 640 height: 480 ListModel { id: modelCategory Component.onCompleted: { var cr = [{"nid":[{"valu
import QtQuick 2.0
import QtQuick.Window 2.0
Window {
visible: true
width: 640
height: 480
ListModel {
id: modelCategory
Component.onCompleted: {
var cr = [{"nid":[{"value":"17"}],"uuid":[{"value":"f68wb2f2-11a0-457b-b8f4-a3bf55bea3d5"}],"vid":[{"value":"17"}],"langcode":[{"value":"en"}],"type":[{"target_id":"category","target_type":"node_type","target_uuid":"12d62f50-2d60-4c9f-96fb-0351df3e4223"}],"title":[{"value":"Restaurant "}],"uid":[{"target_id":"2","target_type":"user","target_uuid":"0a4c1442-f9b5-4cdb-96d3-f3a6bb35d5dd","url":"\/user\/2"}],"status":[{"value":"1"}],"created":[{"value":"1477296867"}],"changed":[{"value":"1477297787"}]}]
populateCategory(cr);
console.log(JSON.stringify(modelCategory.get(0)))
}
}
function populateCategory(categoryResult) {
modelCategory.clear()
for (var i in categoryResult) {
var obj = {
_id: categoryResult[i].nid[0].value,
categoryName: categoryResult[i].title[0].value
}
modelCategory.append(obj)
}
}
}
我正在从附加对象的JavaScript文件调用populateCategory()
。打印其中一个模型项目时,我得到:
{“categoryName”:“餐厅”、“餐厅id”:“17”、“餐厅id”:“17”}
它给出了两个\u id
。为什么呢?它通过QSortFilterProxyModel破坏了过滤,甚至没有在任何视图中显示
有什么建议吗?只是想知道如果使用自定义模型而不是在Javascript中乱搞,是否会更好。这里显示的代码可能与您使用的不同。或者这个奇怪的数组可能不一样。是的,我想知道为什么你使用如此奇怪的JS魔法而不是简单化。当ListModel用预加载的键实例化时,它起作用了。好的,我可以知道一种更好的方法来处理类似JSON的文档存储。任何参考资料也非常感谢,谢谢。我已经编辑了你的代码,使之成为一个实际的可运行示例,这是一件应该首先完成的事情。这段代码在我使用Qt5.7时适用。我只是想知道如果使用自定义模型而不是在JavaScription中乱搞,您是否会过得更好可能这里显示的代码与您使用的不同。或者这个奇怪的数组可能不一样。是的,我想知道为什么你使用如此奇怪的JS魔法而不是简单化。当ListModel用预加载的键实例化时,它起作用了。好的,我可以知道一种更好的方法来处理类似JSON的文档存储。任何参考资料也非常感谢,谢谢。我已经编辑了你的代码,使之成为一个实际的可运行示例,这是一件应该首先完成的事情。该代码适用于我使用Qt5.7的情况。