Javascript AngularJS选择下拉菜单上的自定义筛选器触发器

Javascript AngularJS选择下拉菜单上的自定义筛选器触发器,javascript,angularjs,Javascript,Angularjs,我是安格拉斯的新手。我有一个这样的自定义过滤器 app.filter('makeUppercase', function () { return function (item) { return item.toUpperCase(); }; }); 在ng更改时,我想触发我的自定义筛选器。意味着,当用户选择选项1时,我想触发上述过滤器 <md-select ng-model="myModel" ng-change="" placeholder="Select an o

我是安格拉斯的新手。我有一个这样的自定义过滤器

app.filter('makeUppercase', function () {
  return function (item) {
    return item.toUpperCase();
  };
});
在ng更改时,我想触发我的自定义筛选器。意味着,当用户选择选项1时,我想触发上述过滤器

  <md-select ng-model="myModel" ng-change="" placeholder="Select an option">

我认为您正在尝试创建一个选择列表。所以你可以这样做

<select ng-model="myModel" ng-options="obj as (obj | makeUppercase) for obj in objects" placeholder="Select an option">
</select>
试试这个解决方案

var-app=angular.module'myApp',[]; app.controller'myCtrl',函数$scope,$filter{ $scope.option=[option01、option02、option03]; angular.elementdocument.querySelector'option'。在'change'上,函数{ var a=此。已选择选项[0]。标签; console.loga; $scope.result=$filter'makeUppercase'a; log$scope.result; } }; app.filter'makeUppercase',函数{ 返回函数项{ console.logOK; 返回item.toUpperCase; }; }
有很多方法可以解决这个问题,但我更喜欢一个完整的角度解决方案。下面是一个HTML模板,基于我从你的问题中了解到的内容

从下拉列表中选择值时,ng模型值将从您创建的过滤器转换为大写

HTML


工作

我只想触发它@31piy@31piy这和我想要的差不多。我需要一些帮助。你能帮我换零钱吗?没有这样使用angular.elementdocument.querySelector'option',有任何选项吗?我试着做你想做的,但我做不到,这就是为什么我这样编码。在ng change中,你只做了-$scope.optionChanged=函数{console.logoptions已更改..;};你可以在ng change函数中做任何你想做的事情,我已经在HTML中应用了过滤器,因此我将函数留空。
<div role="main" class="container theme-showcase" ng-app="angularTable">
        <div class="" style="margin-top:90px">
            <div class="col-lg-8">
                <div class="page-header"></div>
                <div class="bs-component" ng-controller="listdata">
                    <select ng-options="x.username as x.username  for x  in users" ng-model="myModel" ng-change="optionChanged()"></select>
                    {{myModel | makeUppercase }}
                </div>
            </div>
        </div>
    </div>
// Code goes here

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

app.controller('listdata', function($scope, $http) {

    $scope.users = [];
    $scope.myModel;

    $http.get("demo.json").success(function(response) {
        $scope.users = response;
        console.log($scope.users);
    });

    $scope.optionChanged = function() {

        console.log("options have been changed..");

    };

});

app.filter('makeUppercase', function() {
    return function(item) {
        if (item) {
            console.log(item)
            return item.toUpperCase();
        }
    };
});