如何在 angularjs 中动态生成 ng-option
How to dynamically generate ng-option in angularjs
在这里,从json开始它会显示数量。根据数量值,select 选项需要动态生成,如下所示。
您可以将 limitTo
与 ng-options
一起使用以动态显示 select
元素的 options
希望我有你想要的。
angular.module("app", []).controller("myCtrl", function($scope) {
$scope.selectedItem = 1;
$scope.list = [1, 2, 3, 4];
$scope.quantity = 1;
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="myCtrl">
<select ng-model="quantity" ng-options="value as value for value in list"></select>
<br>
<select class="classname" ng-options="value as value for value in list | limitTo:quantity:0" ng-model="selectedItem">
<!--<option ng-repeat="item in list | limitTo:quantity:0">{{item}}</option> -->
</select>
{{selectedItem}}
</div>
至于对问题的理解,您可以创建自定义过滤器以根据数量过滤掉选项。
angular.module("app",[])
.controller("ctrl",function($scope){
$scope.obj = {
"list": [
{
"quantity": [
2,
3,
4
]}
]}
})
.filter('cust',function(){
return function(item){
var arr = []
for(var i =1; i<= parseInt(item); i++){
arr.push(i)
}
return arr
}
})
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="ctrl">
<div ng-repeat="q in obj.list">
<div ng-repeat="i in q.quantity">
<select ng-init="q.selectval[i] = i" class="classname" ng-model="q.selectval[i]" ng-options="value as value for (key,value) in i | cust" >
</select>
{{q.selectval[i]}}
</div>
</div>
</div>
在这里,从json开始它会显示数量。根据数量值,select 选项需要动态生成,如下所示。
您可以将 limitTo
与 ng-options
一起使用以动态显示 select
元素的 options
希望我有你想要的。
angular.module("app", []).controller("myCtrl", function($scope) {
$scope.selectedItem = 1;
$scope.list = [1, 2, 3, 4];
$scope.quantity = 1;
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="myCtrl">
<select ng-model="quantity" ng-options="value as value for value in list"></select>
<br>
<select class="classname" ng-options="value as value for value in list | limitTo:quantity:0" ng-model="selectedItem">
<!--<option ng-repeat="item in list | limitTo:quantity:0">{{item}}</option> -->
</select>
{{selectedItem}}
</div>
至于对问题的理解,您可以创建自定义过滤器以根据数量过滤掉选项。
angular.module("app",[])
.controller("ctrl",function($scope){
$scope.obj = {
"list": [
{
"quantity": [
2,
3,
4
]}
]}
})
.filter('cust',function(){
return function(item){
var arr = []
for(var i =1; i<= parseInt(item); i++){
arr.push(i)
}
return arr
}
})
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="ctrl">
<div ng-repeat="q in obj.list">
<div ng-repeat="i in q.quantity">
<select ng-init="q.selectval[i] = i" class="classname" ng-model="q.selectval[i]" ng-options="value as value for (key,value) in i | cust" >
</select>
{{q.selectval[i]}}
</div>
</div>
</div>