情况如下。我有两张桌子:
MSSQL
产品
ProductId | ProductName
__________|____________
1 | iPhone5
2 | iPhone6
3 | iPhone6s
图片
Id | ImagePath | ProductId
___|__________________|___________
1 | /images/231.jpg | 2
2 | /images/432.jpg | 2
3 | /images/111.jpg | 1
我的淘汰赛:
<div data-bind="foreach: Products">
<div data-bind="text: ProductName">
<div data-bind="foreach: Images>
<img data-bind="attr:{src: ImagePath}" />
</div>
</div>
</div>
所以我想获得每个产品的所有图像。我应该将两个表合并为一个Json,如何从外循环获取id?谢谢!
P.S。如果它有用,我正在使用asp.net。
答案 0 :(得分:1)
您可以使用$parent
访问一个范围级别。因此,从您的内部循环中,您可以使用父级访问Products
答案 1 :(得分:1)
您可以尝试以下内容。根据以下代码段,我认为products
将来自ajax调用。话虽如此,你必须相应地改变这一部分。从本质上讲,你的ajax调用将返回的是一系列产品,每个产品至少应该有一个名称和一个图像数组(如果该产品不存在任何图像,则为空数组)。显然,您可以将任何其他信息添加到您的回复中。因此,您必须稍微调整下面声明的函数Image
和Product
。
var Image = function(name){
this.name = name;
};
var Product = function(name, images){
this.name = name;
this.images = images;
};
var viewModel = {
products: [
new Product("iPhone5", [new Image("/images/111.jpg")]),
new Product("iPhone6", [new Image("/images/231.jpg"),new Image("/images/432.jpg")]),
new Product("iPhone6s", [new Image("/images/444.jpg")])
]
};
ko.applyBindings(viewModel);
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>
<div data-bind="foreach: products">
<div data-bind="text: name"> </div>
<ul data-bind="foreach: images">
<li data-bind="text: name"></li>
</ul>
</div>
&#13;