我有一个带有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.
我该如何解决这个问题?
答案 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始终保持不变。