未选择角度选择初始值

时间:2015-08-11 13:14:02

标签: javascript angularjs data-binding

我对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>

选项列表中填充了品牌列表,但未选择任何值。当我改变选择的价值时,它会改变产品的品牌。

所以我不明白我错过了什么。

2 个答案:

答案 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变量中的品牌对象与产品变量的品牌对象不同,如您在示例中所示。