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

Php 如何在knockoutjs中的html文件中使用动态可观察变量名,php,jquery,knockout.js,Php,Jquery,Knockout.js,我正在使用knockjs,并且我已经在js文件中创建了动态observableArrays。 例如,product+productid,它创建了一个动态的可观察页面,如product123 我想在数据绑定foreach循环中使用它,并想在html文件中再次动态创建这个变量 类似于:databind=“foreach:{data:“product”+product.id()} 所以这个“product”+product.id()绑定应该调用我的product123()数组 如何实现这一点?您可以使

我正在使用knockjs,并且我已经在js文件中创建了动态observableArrays。 例如,
product+productid
,它创建了一个动态的可观察页面,如
product123

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

类似于:
databind=“foreach:{data:“product”+product.id()}

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


如何实现这一点?

您可以使用
$data
引用当前上下文,并使用数组表示法为动态命名的元素编制索引

vm={
产品:ko.可观察('123'),
产品123:ko.Array([
“一”,“二”,“三”
])
};
ko.applyBindings(vm);


嘿,它使用了
vm['product'+product.id()]

谢谢,这会根据需要创建变量。但是数据是空的。我确信当我登录js文件时,变量中有我得到的对象。我也尝试过用模型对象调用它,
vm.$data['product'+product()]
无法读取未定义的属性“product123”。当我手动使用product123时,它会显示数据p.S:产品变量也是动态创建的。
var productName=“product”+product.id;self[productName]=ko.observearray([]);
什么意思是“数据为空?”"? 在我的代码段中,您可以看到显示了数据。您可能遇到scope/context.Empty的问题,这意味着它不会给出错误,但不会在html文件中打印任何内容,其中as会在js文件中的控制台日志上打印数据。另外,如果我使用这个硬编码变量product123,它在html文件中也可以正常工作。我正在尝试实现类似的功能。当我使用模型对象调用它时,如
vm.$data['product'+productData.id()]
,它抛出错误为:
TypeError:无法读取未定义的属性'product123';绑定值:foreach:{data:vm.$data['product'+productData.id()],as:'productInfo'}