嗨,我正在使用telerik appBuilder进行我的第一个移动应用程序,但我无法使用下拉列表来获取Kendo数据源。
我的Web服务的结果如下,但我无法获得该结果的正确数据绑定。
请问,有什么想法吗?非常感谢。
/* product.html*/
<div id="product" data-role = "view"
data-layout = "sharedlayout" data-model="app.productService.viewModel">
<div class="view-content">
<form >
<div data-role="listview" data-style="inset">
<div>
Products:
<select id="product" data-role="dropdownlist"
data-bind="source: productsdataSource "
data-text-field="id"
data-value-field="product">
<option value="0"> </option>
</select>
</div>
</div>
</form>
</div>
</div>
ProductViewModel.js
(function (global)
{
var ProductsViewModel,
app = global.app = global.app || {};
ProductsViewModel = kendo.data.ObservableObject.extend (
{
getProducts: function() {
var dataSource = new kendo.data.DataSource({
transport: {
read: {
url: "urlexample",
type:"post",
contentType: "application/json; charset=utf-8",
dataType: "json"
}
},
schema: {
data: "d"
},
type: 'json'
});
}
});
app.productService = { viewModel: new ProductsViewModel() };
})(window);
我不确定你的问题到底在哪里,但我有一些想法。。。
- 你为什么要扩展可观察的?为什么不直接使用剑道.observable({})
- 您的viewModel返回的是一个函数,而不是Kendo UI所期望的对象
我想你可能有点过于复杂了。我举了一个非常简单的例子。。。
http://plnkr.co/edit/T41nZqZNLqtOTfjG8upK?p=preview
我还可以建议你放弃data-role="dropdownlist"
吗?移动设备有自己的选择列表实现,通过这种方式,您可以在设备上使用本机选择功能。