Как использовать динамические наблюдаемые имена переменных в html-файлах в knockoutjs

Я использую knockjs, и я создал динамический observableArrays в файле js.
Ex. product+productid который создает динамический observableArrays как product123,

Я хочу использовать это в цикле привязки данных foreach и хочу снова динамически создать эту переменную в HTML-файле.

Что-то вроде : data-bind="foreach: { data: "product"+product.id()()}

Так это "product"+product.id()() Привязка должна вызывать мой массив product123 ().

Как мне этого добиться?

1

Решение

Ты можешь использовать $data чтобы ссылаться на текущий контекст и использовать нотацию массива для индексации вашего динамически именованного элемента.

vm = {
product: ko.observable('123'),
product123: ko.observableArray([
'one', 'two', 'three'
])
};

ko.applyBindings(vm);
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>
<div data-bind="foreach: $data['product'+product()]">
<div data-bind="text: $data"></div>
</div>
0

Другие решения

Эй, это сработало vm['product'+product.id()]

0

По вопросам рекламы [email protected]