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();
}
};
});