我是棱角分明的新手,我正在和angular.js和angular-material一起工作。
我要做的是创建一个md-select并将一个对象作为ng-model分配给它。我的md-options来自一个对象数组,当我选择所需的选项时,整个对象存储在ng-model中。
问题是,在此之后我尝试选择此对象的属性,不返回任何内容。你可以在这里看到我的代码:
<md-input-container md-no-float class="md-block col-1111-20-0-fl mrg-l-20">
<md-select ng-model="orderItems[$index].item">
<md-option ng-repeat="item in itemNames[$index] | orderBy: item.name" value="{{item}}">
{{item.name}} - {{item.price | currency : 'R$' : 2}}
</md-option>
</md-select>
</md-input-container>
{{orderItems[$index].item.name}}
如果我只写{{orderItems [$ index] .item}},则会访问整个对象,将其显示为一个对象,它的属性如下:
{“_ id”:“5812cfdb1c27a7187c61b8c1”,“price”:“2”,“name”:“Water bottle 500ml”}
但是当我写道:
{{的OrderItems [$指数] .item.name}}
我无法访问对象的名称,没有任何显示。
我在这里做错了什么?
谢谢!
答案 0 :(得分:0)
您在ng-repeat中使用的$index
将不适用于父md-select
,因此您无法使用该数字索引orderItems数组。此外,根据angular-material文档,您无需为value属性评估value="{{item}}"
。
如果您只想将选定的值存储为对象,则可以执行以下操作:
<md-input-container md-no-float class="md-block col-1111-20-0-fl mrg-l-20">
<md-select ng-model="selectedItem">
<md-option ng-repeat="item in itemNames | orderBy: item.name" ng-value="item">
{{item.name}} - {{item.price | currency : 'R$' : 2}}
</md-option>
</md-select>
</md-input-container>