如何在knockoutjs中的html文件中使用动态可观察变量名

时间:2016-01-27 11:26:12

标签: php jquery knockout.js

我使用的是knockjs,我在js文件中创建了动态observableArrays。 防爆。 product+productid创建动态observableArrays为product123

我想在数据绑定foreach循环中使用它,并希望在html文件中再次动态创建此变量。

类似于:data-bind="foreach: { data: "product"+product.id()()}

所以这个"product"+product.id()()绑定应该调用我的product123()数组。

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:0)

您可以使用$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>

答案 1 :(得分:0)

嘿,它适用于vm['product'+product.id()]