2014-05-06 66 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