Kendo UI Grid重新加载数据错误

时间:2014-05-06 14:12:44

标签: javascript jquery angularjs kendo-ui kendo-grid

我有一个带有angularjs的Kendo UI Grid:当我更改select控件中的一个项目时,我想重新加载网格中的数据,将所选的id传递给url。

所以,在角度控制器中我有:

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

当我在选择控件中选择一个元素时,我正确调用了这个函数,传递了所选项的id并重新加载了网格数据

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

当我更改select控件中的元素时,会将请求正确地发送到url:

"api/Pers?role=" + id

但是当我更改选择时,id始终为0.

我该如何解决这个问题?

1 个答案:

答案 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,以便动态地重新生成读取URL。

你现在这样做的方式是静态的。尽管你以后更改了id值,但是kendo已经将默认id 0散列到你的url字符串中,并且这个url始终保持不变。