1

您好我正在做我的第一個應用程序的移動使用telerik appBuilder和我不能讓Kendo數據源與下拉列表一起工作。DropDownList不填充數據來自數據源

我的web服務的結果如下,但我無法得到正確的數據綁定的結果。

{「d」:[{「id」:2209,「nom」:「Test 1」},{「id」:23608,「nom」:「Test 2」},{「id」:24061 ,「nom」:「Test 3」},{「id」:24741,「nom」:「Test 4」},{「id」:27347,「nom」:「Test 5」}]}

請問,有什麼想法?非常感謝。

/* 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); 

回答

5

我不知道究竟在何處您的問題所在,但我有一些想法...

  1. 你爲什麼要延長觀察到的?爲什麼不使用kendo.observable({})?
  2. 您的viewModel正在返回一個函數,而不是Kendo UI期望的對象。

我想你可能會略微過度複雜化。我已經把死簡單的例子...

http://plnkr.co/edit/T41nZqZNLqtOTfjG8upK?p=preview

也許我也建議你刪除data-role="dropdownlist"?移動設備有自己的選擇列表實現,這樣你就可以在設備上使用本地選擇功能。