2 votes

Comment ajouter un élément à QML ListModel en utilisant Javascript ?

J'ai créé un ListModel imbriqué.

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

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

Comment puis-je ajouter un élément à la liste interne en utilisant JavaScript ? En d'autres termes, comment puis-je ajouter un élément au modèle subAlpha ?

3voto

Chaitanya Points 121

Utilisez subAlpha.append(). Cette méthode prend un objet Javascript en argument, qu'elle utilise pour créer un nouveau ListElement avec ces clés et ces valeurs.

Un exemple de travail:

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"})
    }
}

0voto

milton Points 181

Pour le rendre valide JSON/Javascript

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

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

et ensuite ajoutez à subAlpha

a.ListElement.subAlpha.push({ alphaName: "C" })

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X