如何实现下拉列表更改事件捕获功能

米克

我在我的 html 文件中有这个:

<select ng-model="selectedCar" ng-change="changedValue(selectedCar)" ng-options="x.license for x in fhu.carList" >
        <option value="">Select Car</option>
</select>

如何以及在何处放置我的控制器中的 changedValue 函数?我对这个 Angular 和 JavaScript 有点陌生,所以一个具体的例子会很好。我的控制器在下面,下拉列表填充正在工作......几乎但这是另一个问题,此时选择更改功能更为重要。

(function() {
    var app = angular.module("fhu", []);

    app.controller("FhuController", function(){

        this.carList = cars;

    });


    $(document).ready(function(){

        var car = {};

        $.getJSON("fillingapi.php?action=get_cars",function(data){
             var i=0;
             for(i=0;i<data.length;i++){

                cars.push( {license: data[i].license, descr: data[i].descr});               

            }
        });
    });

    var cars=[];

    })();
岩石

回答您的问题:“将 changedValue 放在我的控制器中的何处”您已经通过 ng-model="selectedCar" 获得了。Angular 会为你更新它。因此,在您的控制器中,您可以执行 $scope.selectedCar 并获取从下拉列表中选择的汽车。

稍微解释一下:

  • 您正在混合 angular 和 jquery。这不是禁止的,但它并没有真正添加任何东西,并且可能会使事情复杂化。他们对如何操纵视图有不同的策略。

  • Angular 有双向绑定。当文档准备好时,您不需要收听。这是jquery代码。Angular 会自动为你更新范围和视图。

  • 同样在 angularJS 中使用这个关键字会导致一些范围问题,请改用 $scope 。

  • 您正在使用 jquery 的 $.getJSON 获取数据。您可以改用 angular $http 组件。

我用工作示例做了一个plunker:https ://plnkr.co/edit/1xqvFVTed9I7lJj9NkFH?p = preview

var app = angular.module('fhu', []);

app.controller('FhuController', function($scope, CarService) {
    $scope.selectedCar;

    CarService.getCars().then(function(listOfCars) {
      console.log(listOfCars);
      $scope.carList = listOfCars;
    });

    $scope.changedValue = function() {
      alert('You just selected '+ $scope.selectedCar.licence);
    }              
});

app.factory('CarService', function($http) {

  const getCars = function() {
    return $http.get('https://www.rantakallio.fi/fillherup/fillingapi.php?action=get_cars');
  };

  return { getCars };
});

让我们通过代码:

  1. 我删除了函数包装。
  2. 我删除了 jquery document.ready
  3. 我删除了 jquery .getJson 并使用了 angular 的 $http 组件,它做同样的事情。
  4. 我为您的 http 请求提供了服务。它基本上将请求包装在工厂/服务中,您可以在代码中的任何位置注入。所以如果有另一个控制器需要获取汽车列表。您可以注入 CarService

查看 CarService.getCars() 行。getCars 是名为 CarService 的工厂中的一个函数。我让它返回一个简单的承诺,您需要使用 $http 组件(已注释掉)。

我只是简单地返回承诺并将其解包到控制器中,然后将值放入我的 carList 变量中。当 angular 看到变量已更改时,它会为您更新视图。当您从选择列表中选择时,也会发生同样的情况。因为你把 ng-model="selectedCar" 放在你的视图中,angular 会为你更新模型。因此,您可以在控制器中使用它来做某事。

在代码示例中,您可以看到不需要将值传递给函数。你可以阅读 $scope.selectedCar

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在字符界面中实现下拉列表?

来自分类Dev

如何在我的 Django 表单中实现下拉列表?

来自分类Dev

如何在编辑文本中实现下拉列表?注意:我不想使用微调器

来自分类Dev

如何更改更改事件下拉列表的值?

来自分类Dev

从数据库中实现下拉列表 (ngFor)

来自分类Dev

如何在Android中实现下拉刷新?

来自分类Dev

如何在Android中实现下拉刷新?

来自分类Dev

如何实现下表?

来自分类Dev

如何使用来自状态的选项呈现下拉列表

来自分类Dev

如何在SwiftUI中实现下拉菜单以消除模式视图?

来自分类Dev

我如何在React中的Material-ui中实现下拉标头?

来自分类Dev

如何使用Python在Plotly Dash中实现下拉菜单?

来自分类Dev

如何使用数百个选项实现下拉菜单?

来自分类Dev

CSS-如何正确实现下拉菜单横着走?

来自分类Dev

如何在 React-Bootstrap 中实现下拉动画?

来自分类Dev

无法呈现下拉列表中的值

来自分类Dev

如何捕获Bootstrap导航栏下拉事件?

来自分类Dev

如何在 Select2 下拉列表中捕获滚动事件?

来自分类Dev

如何从“更改事件”元素中捕获事件?

来自分类Dev

如何在转发器中创建事件下拉列表(选定的已更改事件)

来自分类Dev

修改Kendo UI下拉列表的更改事件

来自分类Dev

根据更改事件填充选择下拉列表

来自分类Dev

当用户更改asp.net列表视图中的下拉列表时,如何触发事件?

来自分类Dev

在iOS中实现下拉UI的最佳方法(Swift)

来自分类Dev

实现下拉菜单不起作用

来自分类Dev

在iOS中实现下拉UI的最佳方法(Swift)

来自分类Dev

当其主Dropwnlist更改事件在表行上工作时如何填充下拉列表

来自分类Dev

激活更改事件后,如何获取与下拉列表相对应的json?

来自分类Dev

如何通过下拉列表更改单元格功能[非数据]

Related 相关文章

  1. 1

    如何在字符界面中实现下拉列表?

  2. 2

    如何在我的 Django 表单中实现下拉列表?

  3. 3

    如何在编辑文本中实现下拉列表?注意:我不想使用微调器

  4. 4

    如何更改更改事件下拉列表的值?

  5. 5

    从数据库中实现下拉列表 (ngFor)

  6. 6

    如何在Android中实现下拉刷新?

  7. 7

    如何在Android中实现下拉刷新?

  8. 8

    如何实现下表?

  9. 9

    如何使用来自状态的选项呈现下拉列表

  10. 10

    如何在SwiftUI中实现下拉菜单以消除模式视图?

  11. 11

    我如何在React中的Material-ui中实现下拉标头?

  12. 12

    如何使用Python在Plotly Dash中实现下拉菜单?

  13. 13

    如何使用数百个选项实现下拉菜单?

  14. 14

    CSS-如何正确实现下拉菜单横着走?

  15. 15

    如何在 React-Bootstrap 中实现下拉动画?

  16. 16

    无法呈现下拉列表中的值

  17. 17

    如何捕获Bootstrap导航栏下拉事件?

  18. 18

    如何在 Select2 下拉列表中捕获滚动事件?

  19. 19

    如何从“更改事件”元素中捕获事件?

  20. 20

    如何在转发器中创建事件下拉列表(选定的已更改事件)

  21. 21

    修改Kendo UI下拉列表的更改事件

  22. 22

    根据更改事件填充选择下拉列表

  23. 23

    当用户更改asp.net列表视图中的下拉列表时,如何触发事件?

  24. 24

    在iOS中实现下拉UI的最佳方法(Swift)

  25. 25

    实现下拉菜单不起作用

  26. 26

    在iOS中实现下拉UI的最佳方法(Swift)

  27. 27

    当其主Dropwnlist更改事件在表行上工作时如何填充下拉列表

  28. 28

    激活更改事件后,如何获取与下拉列表相对应的json?

  29. 29

    如何通过下拉列表更改单元格功能[非数据]

热门标签

归档