2014-05-06 67 views
0

我有一個Kendo UI Grid with angularjs:當我在選擇控件中更改一個項目時,我想重新加載網格中的數據傳遞給選定的id。Kendo UI Grid重裝數據錯誤

所以,在角控制器我有:

... 
var id = 0; 
$scope.pers = new kendo.data.DataSource({ 
    transport: { 
     read: { 
      url: "api/Pers?role=" + id, 
      dataType: "json" 
     } 
    }, 
    schema: 
    ... 
    ... 
}); 

當我選擇在選擇控制I調用正確此功能的元件,傳遞所選擇的項目的ID和重新加載數據網格

$scope.setRole = function(tmpId){ 
    id = tmpId; 
    $scope.pers.read(); 
}; 

當我改變選擇控制元件被正確地發送的請求的url:

"api/Pers?role=" + id 

但我改變選擇時,id始終爲0。

我該如何解決這個問題?

回答

1

試試這個:

var id = 0; 
$scope.pers = new kendo.data.DataSource({ 
    transport: { 
     read: { 
      url: function() { 
       return "api/Pers?role=" + id; 
      }, 
      dataType: "json" 
     } 
    }, 
    schema: 
    ... 
    ... 
}); 

基本上,如果你讀的網址是動態的,你應該通過一個函數,使其動態再生讀取URL定義URL。

您目前的做法是靜態的。 Kendo已將默認ID 0散列到您的url字符串中,儘管您稍後更改了id值,但此url始終保持不變。

+0

謝謝!有用!! – Tom

+0

@Tom,很高興它的工作!也只是讓你知道,我相信我的原始答案在url函數後失去了一個逗號。 – gitsitgo