Я прочитал документацию, но не нашел ничего, связанного с настройкой параметров в URL-адресах dataSource. Можно ли это достичь?Как использовать URL-адреса, такие как '/ update /: id' как источник данных KendoUI?
Thx заранее.
Я прочитал документацию, но не нашел ничего, связанного с настройкой параметров в URL-адресах dataSource. Можно ли это достичь?Как использовать URL-адреса, такие как '/ update /: id' как источник данных KendoUI?
Thx заранее.
Да, это возможно. Функция url
s, определенная в DataSource.transport
, может быть функцией. Эта функция получает (для update
) в качестве первого аргумента обновляемые данные (модель) и возвращает строку, которая должна использоваться как URL.
Составляя URL для того, что вы хотите сделать, это:
var ds = new kendo.data.DataSource({
transport: {
read: {
url: function() {
return 'read';
}
},
update: {
url : function (item) {
return 'update/' + item.id;
}
}
}
});
Короткий ответ:
Неа.
Длинный ответ:
Параметры передаются либо инлайн с параметром транспортного объекта url
...
var id = 'abc123';
var ds = new kendo.data.DataSource({
transport: {
read: {
url: 'api/employees?id=' + id
}
}
});
... или они передаются в параметре транспорта data
объект.
var id = 'abc123';
var ds = new kendo.data.DataSource({
transport: {
read: {
url: 'api/employees',
data: {
id: id;
}
}
}
});
или
var id = 'abc123';
var ds = new kendo.data.DataSource({
transport: {
read: {
url: 'api/employees',
data: function() {
return { id : id };
}
}
}
});
испытано. Правильный ответ и очень краткий. Благодарю. :) –
Действительно, это отлично работает, но только если 'batch = false' в вашем источнике данных (который по умолчанию). Когда вы включаете пакетные операции, аргумент 'item' будет представлять собой набор моделей, которые не будут сопоставляться с одной службой RESTful. –
Можете ли вы объяснить этот бит больше. Я не понял, как передать элемент этой функции. – NoughT