访问Angular.js中的选定对象属性

时间:2016-11-02 16:42:51

标签: javascript angularjs

我是棱角分明的新手,我正在和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}}

我无法访问对象的名称,没有任何显示。

我在这里做错了什么?

谢谢!

1 个答案:

答案 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>