Я использую knockjs, и я создал динамический observableArrays в файле js.
Ex. product+productid
который создает динамический observableArrays как product123
,
Я хочу использовать это в цикле привязки данных foreach и хочу снова динамически создать эту переменную в HTML-файле.
Что-то вроде : data-bind="foreach: { data: "product"+product.id()()}
Так это "product"+product.id()()
Привязка должна вызывать мой массив product123 ().
Как мне этого добиться?
Ты можешь использовать $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>
Эй, это сработало vm['product'+product.id()]