2013-06-13 6 views
2

Я использую элементы управления KendoUi. Я определил DataSource какМожем ли мы определить модель схемы динамически в kendo ui

var dataSource = new kendo.data.DataSource({ 
    schema: { 
    model: { 
     id: "ProductID", 
     fields: { 
      ProductID: { type:"id" }, 
      ProductName: {type:"string"} 
      }  
     } 
     }   
    }); 

Теперь мой вопрос мы можем определить fileds как array как

var arry = [{ProductID:{type:"id"}}, {ProductName:{type:"string"}}]; 

Теперь мы можем определить DataSource как

var dataSource = new kendo.data.DataSource({ 
    schema: { 
    model: { 
     id: "ProductID", 
     fields: arry 
     } 
     }   
    }); 

ответ

6

Оба определения не являются эквивалент.

Первым:

fields: { 
    ProductID: { type:"id" }, 
    ProductName: {type:"string"} 
}  

использует ассоциированные массивы (индекс являются ProductID и ProductName), а второе:

var arry = [{ProductID:{type:"id"}}, {ProductName:{type:"string"}}]; 
... 
fields: arry 
... 

Вы используете массив с индексом 0 и 1.

Вы можете определить их динамически, но вы должны определить arry как:

var arry = { ProductID:{type:"id"}, ProductName:{type:"string"} }; 

или

var arry = {}; 
arry.ProductID = { type: "id" }; 
arry.ProductName = { type : "string" }; 

или

var arry = {}; 
arry["ProductID"] = { type: "id" }; 
arry["ProductName"] = { type : "string" }; 

но arr должен быть object и не array

+0

Это сработало спасибо – Jonathan

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