2013-02-11 4 views
0

Я новичок в Knockout.js, и я пытаюсь использовать пользовательскую привязку, но что-то мне непонятно. Предположим, я реализую 2 пользовательских привязки с именами «color» и «innerText». Первый («цвет») применяет цвет границы к элементу, а второй - внутреннийText элемента (давайте забудем на мгновение о вставке «text» binding ... я знаю, что он существует). В моем пользовательском связывании innerText я могу принять опцию «цвет» для установки цвета текста. Теперь, если я пишу:Knockout.js: множественные привязки (связанный или несвязанный) синтаксис привязки данных

<div data-bind="innerText: 'Hi everybody', color: 'Red'"></div> 

Как Нокаут знает, что делать с «цветом»? Я использую цвет в своем настраиваемом «innerText» в качестве опции, и я получаю значение с помощью allBindingsAccessor, но как нокаут знает, что это связанная привязка, а не другая привязка для пограничного цвета для применения в последовательности?

ответ

0

В вашем случае, если был другое связывание называется color, то он будет выполнен со значением, который вы передаете к нему, даже если вы использовали его в вашем innerText связывании через allBindingsAccessor.

Итак, нокаут не делает ничего особенного, кроме того, что он не выдает ошибку, если вы укажете bindHandler, который не существует, поскольку вы можете просто использовать его в качестве опции для другой привязки.

Другой шаблон, который вы можете использовать, чтобы передать параметры объекта для пользовательских привязки, как:

data-bind="innerText: { data: 'Hi everybody', color: Red }"

+0

Спасибо, я предположил поведение, как вы описываете .... Я предпочитаю использовать шаблон вы предлагаете избегать двусмысленности. –

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