【问题标题】:Angular select - make option selected based on property角度选择 - 根据属性选择选项
【发布时间】:2017-03-17 21:35:42
【问题描述】:

我有一系列主题,例如:

`[
  { subject: 'Maths',   preferred_teacher: '00000'},
  { subject: 'Chemistry',   preferred_teacher: '11111'},
  { subject: 'Art',   preferred_teacher: ''}
]`

还有一群老师:

[{name:'Farmer', _id: '00000'},{name:'Smith', _id: '11111'}]

我需要创建一个表格,我将在其中生成一个主题列表,其中每个主题都有一个下拉(选择),允许选择首选老师。 但是,我不知道如何使使用 Angular 选项初始化的每个(!)选择显示当前选择的首选老师。

任何帮助将不胜感激 - 我未能将其他答案应用于我的案例。

编辑:

添加属性 _id 以反映我的特殊情况

【问题讨论】:

    标签: angularjs select properties initialization


    【解决方案1】:

    试试这个(根据 OP 编辑​​更新):

    var app = angular.module('app', []);
    app.controller('MainCtrl', ['$scope',
      function($scope) {
        $scope.subjects = [
          {subject: 'Maths', preferred_teacher: '00000'},
          {subject: 'Chemistry', preferred_teacher: '11111'},
          {subject: 'Art', preferred_teacher: ''}
        ];
        $scope.teachers = [{name:'Farmer', _id: '00000'}, {name:'Smith', _id: '11111'}];
      }
    ]);
    <script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.1/angular.min.js"></script>
    <div ng-app="app" ng-controller="MainCtrl">
      <form>
        <table>
          <tr>
            <th>Subject</th>
            <th>Teacher</th>
          </tr>
          <tr ng-repeat="subject in subjects">
            <td><span ng-bind="subject.subject"></span></td>
            <td><select ng-model="subject.preferred_teacher"
                        ng-options="teacher._id as teacher.name for teacher in teachers">
                </select></td>
          </tr>
        </table>
        <br> {{subjects}}
      </form>
    </div>

    如果您有任何问题,请告诉我。

    【讨论】:

    • 将在我的系统上尝试一下,请稍等!
    • Tim Harker,感谢您提供的工作示例!你会这么好心并修改你的 sn-p 以便能够在下拉列表中显示实际的教师姓名,但通过 _id 属性匹配 Subjects 数组中的属性吗?请查看我对问题所做的修改——
    猜你喜欢
    • 2013-05-02
    • 2021-03-14
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    • 2018-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多