2012-06-13 2 views
1

У меня есть вид модель приходит с сервера, как JSON, как этотРасширение модель представления в KnockoutJS с отображением плагин

{ 
    Project: { 
     Items: { 
      ItemA: { 
       Tags: [ 
        ... 
       ] 
      }, 
      ItemB: ... 
     } 
    } 
} 

Я тогда связывающим этот объект с knockout.mapping плагин, но мне нужно Itema иметь, например, дополнительный маркированы наблюдаемой, так что я в разметке может сделать что-то вроде

<ul data-bind="foreach: Project.Items"> 
    ...    
    <input type="checkbox" data-bind="checked: Marked"> 

Я попытался с помощью create опции в процессе отображения (как показано здесь ko.mapping create function, extend object), но я не могу выяснить, как вложить create метод расширения объектов в Project.Items.

Я пытался отображения как этот

var mappings = { 
    'Items': { 
     create: function (options) { 
      return $.map(options.data, function(obj) { 
       return new Item(obj); 
      }); 
     } 
    } 
} 
+0

вы должны вложенности с отображением плагин похож на этот - http://stackoverflow.com/questions/9951521/map-json-data-to-knockout-observablearray-with-specific-view-model-type/9951903 # 9951903? – Artem

+0

да, очень нравится, но мне нужно переопределить создание объектов в свойстве Items для Project, поэтому, я думаю, вопрос в том, как я переопределяю создание элементов в наблюдаемом массиве – altschuler

ответ

2

Решение было такое связывание

var mappings = { 
    'Items': { 
     create: function (options) { 
      return new Item(options.data); 
     } 
    } 
}; 

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

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