Como adicionar um elemento para o QML ListModel usando Javascript?

0

Eu criei um ListModel aninhado.

ListModel {
    id: mainModel
    ListElement {
        mainName: "Alphabet"

        subAlpha: [
            ListElement { alphaName: "A" },
            ListElement { alphaName: "B" }
        ]
    } } 

Como posso adicionar elementos na lista interna usando javascript? Em outras palavras, como posso adicionar elementos ao modelo subAlpha?

    
por A.P. 28.12.2015 / 08:28

2 respostas

2

Use subAlpha.append() . Esse método usa um objeto Javascript como um argumento, que é usado para criar um novo ListElement com essas chaves e valores.

Um exemplo de trabalho:

import QtQuick 2.0

ListView {
    width: 200
    height: 200

    ListModel {
        id: mainModel
        ListElement {
            name: "Alphabet"
            subAlpha: [
                ListElement {
                    alphaName: "A"
                },
                ListElement {
                    alphaName: "B"
                }
            ]
        }
    }

    model: mainModel
    delegate: Column {
        Text { text: name }
        Row {
            Repeater {
                model: subAlpha
                Text { text: alphaName }
            }
        }
    }

    Component.onCompleted: {
        mainModel.get(0).subAlpha.append({alphaName: "C"})
    }
}
    
por Robert Schroll 28.12.2015 / 20:11
0

Para torná-lo válido, JSON / Javascript

a = {
  id: mainModel,
  ListElement: {
    mainName: "Alphabet",

    subAlpha: [
       { alphaName: "A" },
       { alphaName: "B" }
    ]
  } 
} 

e, em seguida, adicione a subAlpha

a.ListElement.subAlpha.push({ alphaName: "C" })
    
por Simon1901 28.12.2015 / 10:13