如何定义用作AngularJS过滤器的选择的“选定”选项

How to define "selected" option of select that serves as AngularJS filter

本文关键字:选择 过滤器 选定 选项 AngularJS 何定义 定义      更新时间:2023-09-26

我对Javascript和jQuery很有经验,但我在AngularJS方面是一个完全的菜鸟。

目前我正在从 $http.get 填充我的模型,因此在开始时(页面加载后)模型是空的。

模型的视图是一个表,我使用 <select> 元素来筛选此表,如下所示:

<select ng-model="herkunftFilter.herkunft">
  <option value="BTRG">BTRG</option>
  <option value="BTRGMA">BTRGMA</option>
  <option value="DBLATT">DBLATT</option>
  <option value="DBLATTMA">DBLATTMA</option>
</select>

这是控制器。我认为这一切都归结为在这里应用特定的过滤器......但是我该怎么做呢?

    var monitoringViewApp = angular.module('monitoringViewApp', []);
    monitoringViewApp.controller('MonitoringCtrl', function ($scope, $http){
        $http.get('api/getmonitorview').success(function(data) {
            $scope.monitoringTasks = data;
            // set the filter herkunftFilter.herkunft to be 'BTRG'
            // but HOW?
        });
    });

通过这种构造,我想预先选择数据模型的第一个herkunft内容作为<select>元素的selected选项,以便过滤器不会从空开始。

但它是空的...我需要做什么?

<select>用作以下表行的筛选器:

<tr ng-repeat="task in monitoringTasks | filter:herkunftFilter:true">
    <td style="display: none;">{{task.herkunft}}</td>
    <td style="width: 50%">{{task.task}}</td>
    <td>{{task.countEingang}}</td>
    <td>{{task.countInArbeit}}</td>
    <td>{{task.countFehler}}</td>
</tr>

关于如何在加载模型后设置selected选项,以便过滤器自动应用并且不会保持空白的任何建议?

试试这种方式

 <select  ng-model="selectedherkunftFilter"
 ng-options="monitoringTasks.herkunft for monitoringTask in  monitoringTasks">      
 <option ng-if="!selectedherkunftFilter" value="">Select Value</option>    
 </select>