U1db-Qt não está funcionando como esperado no ListView (Desenvolvimento de Aplicativos do Ubuntu Touch)

0

Recentemente, tenho tentado aprender como usar a Biblioteca U1db (se é assim que você a chama), mas ela não está funcionando como eu esperava que funcionasse.

Aqui está o meu código:

 import QtQuick 2.4
 import Ubuntu.Components 1.3
 import U1db 1.0 as U1db

 MainView {
     objectName: "mainView"
     applicationName: "u1bdtest.evanlinjin"

     width: units.gu(100); height: units.gu(75);

     U1db.Database {
         id: aDatabase
         path: "aU1DbDatabase"
     }

     U1db.Document {
         id: aDocument
         database: aDatabase
         docId: 'helloWorld'
         contents: {"hello": {"world": [{"id": 3, "message": "Hello world."},
                                        {"id": 3.33, "message": "World, hello."},
                                        {"id": 3.66, "message": "HELLO WORLD!!!"}
                 ]}}
     }

     U1db.Index {
         id: documentIndex
         database: aDatabase
         expression: ["hello.world.id", "hello.world.message"]
     }

     U1db.Query {
         id: aQuery
         index: documentIndex
     }

     Page {
         title: i18n.tr("U1BdTest")

         Column {
             spacing: units.gu(1)
             anchors { margins: units.gu(2); fill: parent;}

             Label {id: label; objectName: "label"; text: i18n.tr("A U1Bd Test.");}

             ListView {
                 width: parent.width; height: parent.height; model: aQuery;
                 delegate: Text {x: 66; text: "(" + index + ", " + contents.id + ") " + contents.message}
             }
         }
     }
 }

Aqui estão os resultados esperados no meu "ListView":

  • (0, 3) Olá, mundo.
  • (1, 3.33) Mundo, olá.
  • (2, 3,66) OLÁ MUNDO !!!

No entanto, apenas "(0, 3) Hello world." é exibido.

Screenshot

    
por Evan Lin 09.11.2015 / 19:26

1 resposta

0

Aparentemente, itera sobre documentos, não dentro de um documento.

Demorou hello.world[0].id e hello.world[0].message de aDocument . Se você adicionar outro documento aDocument2 , haverá duas linhas.

Talvez deva expandir as listas que encontrar dentro. Mas a descrição da classe Query provavelmente diz que um resultado corresponde exatamente a um documento:

% bl0ck_qu0te%     
por Velkan 16.11.2015 / 10:25