【问题标题】:How to use md-select using array data?如何使用数组数据使用 md-select?
【发布时间】:2017-02-01 00:32:26
【问题描述】:

我正在使用 angularjs 和 angular material 来设计我的网页。我无法显示数组中存在的选项值。

我的index.html

<md-input-container class="md-block" flex-gt-sm>
  <label>Level</label>
  {{levels|json}}
  <ul>
      <li ng-repeat="level in levels"> {{level.name}}</li><!--this is working-->
  </ul>
  <md-select ng-model="news.level">
       <md-option ng-repeat="level in levels"ng-value="level.name">
         {{level.name}}
        </md-option><!--this is not working-->
  </md-select>
</md-input-container>

在控制器中我有

$scope.levels=['Level one', 'Level two','Level Three'];

请帮助解决可能出现的问题,并让我知道对此问题的任何建议。

【问题讨论】:

  • 您的代码看起来不错。尝试在 &lt;md-option ng-repeat="level in levels"ng-value="level.name"&gt;ng-value="level.name" 之前添加缺少的空格,并且您的级别对象中缺少 name 属性。

标签: angularjs angularjs-directive angular-material javascript-framework angular-controller


【解决方案1】:

给你 - CodePen

标记

<div ng-controller="AppCtrl" ng-cloak="" ng-app="MyApp">
  <md-input-container class="md-block" flex-gt-sm>
    <label>Level</label>
    <ul>
      <li ng-repeat="level in levels"> {{level.name}}</li>
    </ul>
    <md-select ng-model="news.level">
      <md-option ng-repeat="level in levels" ng-value="level.name">
        {{level.name}}
      </md-option>
    </md-select>
  </md-input-container>
</div>

JS

angular.module('MyApp',['ngMaterial', 'ngMessages', 'material.svgAssetsCache', 'ngDialog'])

.controller('AppCtrl', function($scope) {
  $scope.levels = [{name:'Level one'}, {name:'Level two'}, {name:'Level Three'}];
});

【讨论】:

  • 我认为更好的解决方案是首先解释为什么 OP 代码不起作用。没有解释肯定会让你投反对票。
  • @Samundra 你觉得看$scope.levels 的值还不够吗?我假设 OP 在一定程度上了解 AngularJS。
  • 感谢@camden_kid 我明白了。现在我知道出了什么问题。
  • 是的,后来注意到了,OP 错过了name 属性。我认为有解释是 SO 的政策。有些人有非常离谱的倾向,对没有描述性答案的答案投反对票,之前已经面对过很多次,所以分享意见。
  • @Samundra 明白了。谢谢。
猜你喜欢
  • 1970-01-01
  • 2019-12-31
  • 2020-02-03
  • 2015-07-18
  • 2018-01-11
  • 2018-05-09
  • 1970-01-01
  • 1970-01-01
  • 2021-11-26
相关资源
最近更新 更多