3

好吧,我只是想从选择的列表视图中获取值并将其传递到下一个屏幕(页面)。但我无法做,因为它显示错误

资产:///main.qml:25:TypeError:表达式“dataModel.model”[未定义]的结果不是函数。

我的以下代码如下

这段代码是我的 main.qml

NavigationPane 
{
id:navi
Page 
{
    Container
    {
         background: Color.Transparent
         topMargin:2.0

         TextField {
             id: lb1
             text:""
         }

         ListView 
         {
            topMargin: 2.0
            dataModel: XmlDataModel { source: "model.xml" }
            onTriggered: {
                console.log("onTriggered");

                // Retrieve the selected item
                var selectedItem = dataModel.data(indexPath);
                    lb1.text = selectedItem.status;

                pushed.lb2.text="You Selected :" + lb1.text;
                navi.push(pushed)
                }

           }
         }

}

attachedObjects: [
    Page2 {
        id: pushed
        }
]

}   

这段代码是我的第二页 Page2.qml,我想从 main.qml 中检索信息

import bb.cascades 1.0

Page {
property alias lb2: lb2
Container {
    horizontalAlignment: HorizontalAlignment.Center

    Label {
        id:lb2
        horizontalAlignment: HorizontalAlignment.Center
        verticalAlignment: VerticalAlignment.Center
        text: "You Selected :" + lb1
    }

  }
}

我是这个发展的新手。

4

1 回答 1

0

您可以在 Trigger 上获取模型的当前项目,如下所示。

onTriggered: {
      var selectedItem = dataModel.data(indexPath);
      textField.text = selectedItem.status;
}

您可以从响应选择中了解更多信息。

更新:

您必须设置别名才能将数据从一页传递到另一页。

您的错误中有一些问题..

1) 删除 OnTriggerd 下一行中的文本。

pushed.lb2 ="You Selected :" + lb1.text;

2)正确设置别名

property alias lb2: lb2.text
于 2013-09-26T05:59:40.933 回答