繁体   English   中英

过滤ng-options

[英]Filter in ng-options

我有2个带有ng-options的选择。 我希望第二个选择遍历所选namevalues字段。

我发现的唯一解决方案是选择对象本身,不仅选择第一个选择中的名称字段(类似于d as d.name for d in data ),但为了保持一致性,我宁愿不这样做。

我可以使用过滤器或类似的东西来解决此问题吗?

 angular.module("App", []).controller("Ctrl", function($scope) { $scope.data = [{ name : "john", values : ["Hello", "World"] }, { name : "peter", values : ["Bonjour", "le", "monde"] }]; }); 
 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> <div ng-app="App" ng-controller="Ctrl"> <label>Name :</label> <select ng-model="name" ng-options="d.name as d.name for d in data"></select> <label>Value :</label> <select ng-model="value" ng-options="d as d for d in data"></select> </div> 

像这样 ?

 angular.module("App", []).controller("Ctrl", function($scope) { $scope.data = [{ name : "john", values : ["Hello", "World"] }, { name : "peter", values : ["Bonjour", "le", "monde"] }]; }); 
 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> <div ng-app="App" ng-controller="Ctrl"> <label>Name :</label> <select ng-model="name" ng-options="d.name for d in data"></select> <label>Value : </label> <select ng-model="value" ng-options="d as d for d in name.values"></select> </div> 

我不确定是否有更好的方法,但这是一种可行的方法:

 angular.module("App", []).controller("Ctrl", function($scope) { $scope.data = [{ name : "john", values : ["Hello", "World"] }, { name : "peter", values : ["Bonjour", "le", "monde"] }]; }); 
 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> <div ng-app="App" ng-controller="Ctrl"> <label>Name :</label> <select ng-model="name" ng-options="d.name as d.name for d in data"></select> <label>Value :</label> <select ng-model="value" ng-repeat="d in data" ng-if="name === d.name" ng-options="val for val in d.values"></select> </div> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM