AngularJS:在下拉列表中设置选定的选项

时间:2014-05-14 19:40:32

标签: angularjs

我正在为下拉菜单分配一系列'类型'。当用户在下拉列表中选择一个值时,我将其保存为cookie。

我正在更新ng-model的代码:

$scope.typeItem = $cookieStore.get('typeItem');

这是下拉本身:

<select class="transmission-option-width" ng-model="typeItem" 
  ng-options="t as t.Type for t in transmissionTypes" ng-change="update()"></select>

我设置了一个断点,$ scope.typeItem有一个值,但是没有设置select。知道我在这里做错了吗?

3 个答案:

答案 0 :(得分:1)

您从Cookie商店回来的对象......

$scope.typeItem = $cookieStore.get('typeItem');

虽然它可能与$scope.transmissionTypes中的某个项目具有相同的属性,但它实际上是一个完全不同的对象。由于angular通过引用进行比较,因此无法在$scope.transmissionTypes中找到匹配的对象,并且未设置下拉列表。

答案 1 :(得分:0)

是t。键入数值吗?这可能会阻止角度将选定值视为等于选项值。

从$ cookieStore获取$ scope.typeItem后,可能最容易将$ scope.typeItem转换为数值。

答案 2 :(得分:0)

我认为你把这部分文档搞糊涂了

注意:ngModel按引用进行比较,而不是值。绑定到对象数组时这很重要。请参阅此jsfiddle中的示例。

尝试遍历您的数组并将具有相同值的数组中的元素分配给模型变量