2014-08-28 3 views

ответ

8

Да, это возможно. Функция 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; 
      } 
     } 
    } 
}); 
+0

испытано. Правильный ответ и очень краткий. Благодарю. :) –

+0

Действительно, это отлично работает, но только если 'batch = false' в вашем источнике данных (который по умолчанию). Когда вы включаете пакетные операции, аргумент 'item' будет представлять собой набор моделей, которые не будут сопоставляться с одной службой RESTful. –

+1

Можете ли вы объяснить этот бит больше. Я не понял, как передать элемент этой функции. – NoughT

-1

Короткий ответ:

Неа.

Длинный ответ:

Параметры передаются либо инлайн с параметром транспортного объекта 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 }; 
     } 
    } 
    } 
}); 

 Смежные вопросы

  • Нет связанных вопросов^_^