我有一个带有 angularjs 的 Kendo UI 网格:当我更改选择控件中的项目时,我想重新加载网格中的数据,并将所选 ID 传递给 url。
所以,在 Angular Controller 中我有:
...
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();
};
当我更改选择控件中的元素时,会向网址正确发送请求:
"api/Pers?role=" + id
但是当我更改选择时,id 始终为 0。
如何解决这个问题?
最佳答案
试试这个:
var id = 0;
$scope.pers = new kendo.data.DataSource({
transport: {
read: {
url: function() {
return "api/Pers?role=" + id;
},
dataType: "json"
}
},
schema:
...
...
});
基本上,如果您的读取 URL 是动态的,您应该通过函数定义 url,以便它动态地重新生成读取 URL。
可以说,您当前的方式是静态的。 Kendo 已将默认 id 0 散列到您的 url 字符串中,并且该 url 在整个过程中保持不变,尽管您稍后更改了 id 值。
关于javascript - Kendo UI Grid 重新加载数据错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23497189/