我已经设法将数据从远程Json Web服务加载到QML ListView中,但DropDown控件似乎没有任何这样的东西。
有人有一个示例或替代方法来完成绑定到Cascades中的attachObjects数据源的DropDown吗?
答案 0 :(得分:8)
我还有另一种方法,请注意我在此处使用Google的网络服务进行演示,您需要将其替换为您的网址&根据那个解析回应。
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()
}
}
}
希望这有帮助。