Angularjs md-select没有显示md模型

时间:2016-09-02 20:31:12

标签: angularjs

我的页面上显示了两个md-select下拉框,出于某种原因,我可以从$ scope获得一个值,而不是另一个。

工作的md-select看起来像这样,工作正常:

<div class="col-md-4">
 <label for="">Units</label>                        
   <md-select style="margin:0px" name="units" ng-model="product.units" aria-label="select" required>
    <md-option value="kg">kg</md-option>
    <md-option value="g">g</md-option>
    <md-option value="mg">mg</md-option>
   </md-select>                       
  <span></span> 
</div>

不起作用的md-select看起来像这样:

<div class="form-group">
  <label for="">Supplier</label>
   <md-select style="margin:0px" ng-model="product.compname" name="supplier" aria-label="select" >
     <md-option value="kg">kg</md-option>
     <md-option value="kg">mg</md-option>
    </md-select> 
     <span></span>
</div>

我不知道为什么,但是当我更换&#34; product.compname&#34;与&#34; product.units&#34;它工作正常。但是,当我尝试用其他产品数据替换它时,例如&#34; product.name&#34;它也不起作用。

更新:

经过很多很好的帮助后,我尝试设置像文档一样的md-select,但我仍然遇到问题。我对两个变量的范围如下:

$scope.suppliers = data.data; 
$scope.selectedSupplier = [ $scope.suppliers[$scope.product.supplier] ];

在控制台中,供应商和selectedSupplier都很好看。在html页面上,我有以下内容,但它仍然无法正常工作。我可以看到列表中的所有供应商,但页面仍然加载,下拉框为空白,未选择任何选项。你觉得怎么样?

<md-select ng-model="selectedSupplier" ng-model-options="{trackBy: '$value.id'}">
 <md-option ng-value="supplier" ng-repeat="supplier in suppliers">{{ supplier.compname }}</md-option>
</md-select>

2 个答案:

答案 0 :(得分:2)

您是否看过Angular材料演示?

https://material.angularjs.org/latest/demo/select

我不确定为什么要将ng-value和ng-model都设置为product.compname的值?

最常见的用例是以下其中一种:

<md-select ng-model="drinkSelected">
    <md-option value="water">Water</md-option>
    <md-option value="juice">Juice</md-option>
    <md-option value="milk">Milk</md-option>
    <md-option value="wine">Wine</md-option>
    <md-option value="mead">Mead</md-option>
</md-select>

<md-select ng-model="drinkSelected">
    <md-option ng-repeat="drink in drinks" value="{{drink}}">{{drink}}</md-option>
</md-select>

注意:由于代表不够,我无法发表评论,所以我回答了问题。

更新:

您的更新看起来很好。你能否在plunker或codepen中分享你的代码的精简版本?

答案 1 :(得分:0)

也许您忘记添加&nbsp; ngMaterial&#39;模块到列表

var myApp = angular.module('microwaveGUI',['ngMaterial', 'ui.tree', 'angularResizable', 'ngMap', 'withLocals', 'ngRoute']);