Javascript 剑道UI网格重新加载数据错误

Javascript 剑道UI网格重新加载数据错误,javascript,jquery,angularjs,kendo-ui,kendo-grid,Javascript,Jquery,Angularjs,Kendo Ui,Kendo Grid,我有一个带有angularjs的剑道UI网格:当我在选择控件中更改一个项目时,我希望在网格中重新加载数据,并将所选id传递到url 在角度控制器中,我有: ... var id = 0; $scope.pers = new kendo.data.DataSource({ transport: { read: { url: "api/Pers?role=" + id, dataType: "json" }

我有一个带有angularjs的剑道UI网格:当我在选择控件中更改一个项目时,我希望在网格中重新加载数据,并将所选id传递到url

在角度控制器中,我有:

...
var id = 0;
$scope.pers = new kendo.data.DataSource({
    transport: {
        read: {
            url: "api/Pers?role=" + id,
            dataType: "json"
        }
    },
    schema:
    ...
    ...
});
当我在select控件中选择一个元素时,我正确地调用了这个函数,传递所选项的id并为网格重新加载数据

$scope.setRole = function(tmpId){
    id = tmpId;
    $scope.pers.read();
};
更改select控件中的元素时,会将请求正确发送到url:

"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字符串中,尽管您稍后更改了id值,但此url始终保持不变。

@Tom,很高兴它成功了!也只是让你知道,我相信在url函数之后,我的原始答案中缺少了一个逗号。