2015-07-20 73 views
0

如果我使用共享dataSource,使得ajax請求的數量與服務器的下拉數量相同,我想使用具有多個下拉列表的數據源數據。我需要的是1個Ajax請求並使用該數據填充所有下拉列表。 此代碼給我ildata沒有定義..使用具有多個下拉小部件的kendo-ui數據源數據

感謝您的幫助。

代碼示例

var ilDataSource= new kendo.data.DataSource({ 
    transport: { 
    read: { 
     url: "{{ url('ajax/ilList') }}", 
     dataType: "json" 
    } 
    } 
}); 
ilDataSource.fetch(function(){ 
    var ildata = ilDataSource.data(); 
}); 

var iller = $("#iller").kendoDropDownList({ 
    placeholder: "İl Seçiniz", 
    dataSource : { 
    data: ildata 
    }, 
    dataTextField: "il", 
    dataValueField: "id" 
}).data("kendoDropDownList"); 

我可以得到在功能範圍的數據項但在共同範圍不能得到..

ilDataSource.fetch(function() { 
    ildata = ilDataSource.data().toJSON(); 
    console.log(ildata); }); 

回答

1
ilDataSource.fetch(function(){ 
    var ildata = ilDataSource.data(); 
}); 

這定義了一個本地變量ildata作用域爲匿名函數。

dataSource : { 
    data: ildata 
}, 

因而在這一點上沒有變化/屬性ildata

你需要在一個共同的範圍,申報ildata兩個用例:

var ildata; 
ilDataSource.fetch(function(){ 
    ildata = ilDataSource.data(); 
}); 

var iller = $("#iller").kendoDropDownList({ 
    placeholder: "İl Seçiniz", 
    dataSource : { 
    data: ildata 
    }, 
    dataTextField: "il", 
    dataValueField: "id" 
}).data("kendoDropDownList"); 

劍道是否可以處理這個重新使用單一數據源的則是另一個問題。

+0

常用範圍內使用。現在我得到未定義.. –

+0

ilDataSource.fetch(函數() { ildata = ilDataSource.data()的toJSON(); 的console.log(ildata); }); 我可以看到console.how中的數據項我可以離開獲取函數嗎? –

+0

@EfeEngin把這個問題放到一個新的問題中(代碼基本上不可能在評論中閱讀)。 – Richard