javascript - Kendo UI Grid 重新加载数据错误

标签 javascript jquery angularjs kendo-ui kendo-grid

我有一个带有 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/

相关文章:

javascript - <select ng-options ="..."/> 问题

javascript - 显示对象的多个部分?

javascript - 页面加载时有很多请求(require.js)

javascript - JQuery Resizable停止后如何获取宽高?

javascript - 当窗口滚动到顶部时,如何隐藏一个 div?

javascript - Ruby on Rails 中无效参数的 Ajax 错误

javascript - AngularJS - 如何添加动态 ng-model

javascript - 使用 Mean–Multer–Mongoose–Angular 更新或添加标签到图像

javascript - 禁用/删除 HTML 中加载的图像和链接

在多个地方声明时,html 页面上的 javascript 变量初始化