Try this:
var id = 0;
$scope.pers = new kendo.data.DataSource({
transport: {
read: {
url: function() {
return "api/Pers?role=" + id;
},
dataType: "json"
}
},
schema:
...
...
});
Basically if your read URL is dynamic, you should define the url by a function so that it regenerates the read URL dynamically.
The way you have currently done it is static so to speak. Kendo has hashed the default id of 0 into your url string and this url remains constant throughout, despite you changing the id value at a later time.