2016-04-21 2 views
0

Я должен положить две ko.applyBindings(); в ту же функцию, но система вернет мне ошибку во время выполнения. Можно ли это сделать?Можно ли положить две ko.applyBindings() в ту же функцию?

+0

Непонятно, что вы подразумеваете под «в той же функции», но да, это возможно сделать для определенных случаев использования. –

+0

Можете ли вы показать пример для списка и массива? –

+0

Это скорее случай удивления _why_, вы думаете, вам нужно позвонить ему дважды - что вы на самом деле пытаетесь сделать? Это обычно не нужно. –

ответ

0

Обычно вы создаете viewModel объект, а затем вызвать ko.applyBindings(viewModel) один раз, как это:

var viewModel = { 
    personName: ko.observable('Bob'), 
    personAge: ko.observable(123) 
}; 

ko.applyBindings(myViewModel); 

Может быть, это то, что вы ищете?

Возможно, вы можете передать второй параметр, чтобы определить, какую часть документа вы хотите найти для атрибутов привязки данных. Например, ko.applyBindings(myViewModel, document.getElementById('someElementId')). Это ограничивает активацию элемента с идентификатором someElementId и его потомками, что полезно, если вы хотите иметь несколько моделей просмотра и связывать их с другой областью страницы.

Из документации here.

Что касается вашего комментария об управлении списком и массивом, я не уверен, что вы имеете в виду. Они звучат одинаково для меня. Нокаут имеет observable arrays, который вы можете использовать.

+0

Список, сравниваемый с foreach и массивом в foreach –

+0

Я решил поместить список в массив и называть его с помощью myArray() [0] .nemeOfTheElement –

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