2013-05-16 4 views
1

Могу ли я выполнить привязку, как это с нокаутомПередача объектов в целях нокаута

<div data-bind="attr:{id: id,'data-plugin-options': options}"> 

Моя модель выглядит как

var model = { 
    id: id, 
    options: { 
     headerText: 'Group', 
     headerStyle: 'groupWithBorders' 
    } 
}; 

ko.applybindings(model); 

На данный момент я получаю [объект объект] на данных-плагин -отключения после того, как происходит привязка.

+0

Не забудьте привязать модель ko.applybindings (model); –

+0

Хм, я отредактирую образец кода, чтобы включить его. – nimgrg

ответ

2

Нокаут преобразует объекты в привязку attr к строкам, используя toString(). Вы можете перегрузить эту функцию, чтобы вывести нужный результат:

var model = { 
    id: id, 
    options: { 
     headerText: 'Group', 
     headerStyle: 'groupWithBorders', 
     toString: function() { 
      return JSON.stringify(this); 
     } 
    } 
}; 
+1

Был готов ответить на то же самое. вот скрипка http://jsfiddle.net/UCQxL/2/ – Tushar

+0

Я все еще получаю [объект объекта] в параметрах-плагинах данных. Возможно, стоит пойти вниз для jQuery. Спасибо за ответ, хотя. – nimgrg

+0

Мой плохо сделал это на неправильном уровне. Решение действительно работает. Благодаря!! – nimgrg

0

Вы можете сделать что-то подобное:

<div data-bind="attr:{id: id,'data-plugin-options': options.headerText}"> 


var model = { 
    id: 'id', 
    options: { 
     headerText: 'Group', 
     headerStyle: 'groupWithBorders' 
    } 
}; 

ko.applyBindings(model); 

И вы увидите этот результат:

<div data-bind="attr:{id: id,'data-plugin-options': options.headerText}" id="id" data-plugin-options="Group"> 
</div> 

See fiddle

Я надеюсь, что это помогает.

+0

Я думаю, он хочет, чтобы оба предмета. – Tushar

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