2013-09-25 96 views
3

嗯,我只是想從列表視圖中選擇的值,並將其傳遞到下一個屏幕(頁面)。但我不能這樣做,因爲它表明類似的錯誤如何從級聯中獲取值級聯黑莓

asset:///main.qml:25: TypeError: Result of expression 'dataModel.model' [undefined] is not a function.

我下面這段代碼如下所示

此代碼是我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 
    } 

    } 
} 

我對這個開發很陌生。

+0

你有'進口bb.data 1.0'? –

+0

@BojanKogoj yep ..我輸入了它。 – avipandey

回答

0

你可以在觸發該模型的當前項目類似如下代碼..

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

您可以瞭解更多從Responding to selection

更新時間:

你必須從一個頁面設置別名將數據傳遞給另一個頁面。

在錯誤的一些問題..

1)刪除在OnTriggerd下面一行文字。

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

2)設置別名正確

property alias lb2: lb2.text 
+1

我試過了你的代碼,但頁面正在翻譯而沒有顯示值。我已經編輯了代碼,請看看這個。 – avipandey

+0

查看我的更新回答.. –