我对select上的数据绑定有一个奇怪的问题。
以下是我的对象的定义:
brands =
[
{
$$hashKey: "object:18"
firm: Object
id: 242
name: " CONTAGEL "
regex: null
},
...
]
products =
[
{
$$hashKey: "object:7"
brand:
{
$$hashKey: "object:613"
firm: Object
id: 32
name: "Level Junior Solaire"
regex: null
}
label: "Level Junior Solaire - LL LEJUS1501"
productCode: "01646554"
},
...
]
我有一个品牌列表和产品列表。每个产品都有一个品牌(从品牌阵列中拉出来)。
我想显示产品列表,并选择更改品牌。
<div ng-repeat="p in products">
Product : {{p.productCode}}
<select ng-model="p.brand" ng-options="b as b.name for b in brands">
</div>
选项列表中填充了品牌列表,但未选择任何值。当我改变选择的价值时,它会改变产品的品牌。
所以我不明白我错过了什么。
答案 0 :(得分:2)
问题在于您的var List=context.Lists.Include(x=>x.ListItems).FirstOrDefault();
var ListItems=List==null?null:List.ListItems.ToList();
。选择框上的ng-options
使用引用,因此除非该对象是相同的引用,否则默认情况下不会选择它。在你的情况下,它是一个新对象,因此不相同的引用,所以在ng-model
的眼中,它不是匹配。使用ng-model
匹配ID。
track by
答案 1 :(得分:-1)
Brands变量中的品牌对象与产品变量的品牌对象不同,如您在示例中所示。