[英]Filter in ng-options
我有2个带有ng-options的选择。 我希望第二个选择遍历所选name
的values
字段。
我发现的唯一解决方案是选择对象本身,不仅选择第一个选择中的名称字段(类似于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.