2

我已设法将远程 Json Web 服务中的数据加载到 QML ListView 中,但 DropDown 控件似乎没有任何此类内容。

有人有示例或替代方法来完成绑定到 Cascades 中附加对象数据源的 DropDown 吗?

4

1 回答 1

8

我为您准备了另一种方法,请注意,我在这里使用了 google 的网络服务来进行演示,您需要将其替换为您的 url 并据此解析响应。

import bb.cascades 1.0

Page {
    attachedObjects: [
        ComponentDefinition {
            id: optionControlDefinition
            Option {
            }
        }
    ]
    function getData() {
        var request = new XMLHttpRequest()
        request.onreadystatechange = function() {
            if (request.readyState == 4) {
                var response = request.responseText
                response = JSON.parse(response)
                var addressComponents = response.results[0].address_components
                for (var i = 0; i < addressComponents.length; i ++) {
                    var option = optionControlDefinition.createObject();
                    option.text = addressComponents[i].long_name
                    dropDown.add(option)
                }
            }
        }

        // I have used goole's web service url, you can replace with your url
        request.open("GET", "http://maps.googleapis.com/maps/api/geocode/json?address=" + "Ahmedabad" + "&sensor=false", true)
        request.send()
    }
    Container {
        DropDown {
            id: dropDown
        }
        Button {
            onClicked: getData()
        }
    }
}

希望这可以帮助。

于 2012-11-06T12:27:05.743 回答