Javascript 在AngularJS中动态生成ng选项
我有一个数组,如下所示:Javascript 在AngularJS中动态生成ng选项,javascript,angularjs,select,ng-options,Javascript,Angularjs,Select,Ng Options,我有一个数组,如下所示: $scope.age = 2; $scope.people = [{name:"Sam",age:2},{name:"Pam",age:3},{name:"Ham",age:4}] 我希望ng选项是动态的,即。, 如果年龄为2,则在ng选项中显示人的所有对象。 如果年龄为1,则显示名称为“Sam”的对象 $scope.age的值可以是1或2 如何在AngularJS中执行此操作而不编写不同的select语句块?指令ng options也可以解析,因此您可以执行以下操作
$scope.age = 2;
$scope.people = [{name:"Sam",age:2},{name:"Pam",age:3},{name:"Ham",age:4}]
我希望ng选项
是动态的,即。,
如果年龄为2,则在ng选项中显示人的所有对象。
如果年龄为1,则显示名称为“Sam”的对象
$scope.age
的值可以是1或2
如何在AngularJS中执行此操作而不编写不同的select语句块?指令
ng options
也可以解析,因此您可以执行以下操作:
<select ng-options="person as person for person in people | filter:{age:age}">
</select>
$scope.age = 2;
$scope.people = [{name:"Sam",age:2},{name:"Pam",age:3},{name:"Ham",age:4}]
$scope.getPersons = function() {
if ($scope.age = 1)
return $scope.people.filter(function(item) {
item.name == "Sam";
});
else
return $scope.people;
};
请参见您可以将选择绑定到函数的结果:
<select ng-options="person as person for person in getPersons()">
</select>
您可以在自定义函数中使用AngularJS,如下所示
工作样本:(在下面的文本框中键入1或2以测试此功能)
var-app=angular.module('app',[]);
app.controller('TestController',函数($scope){
$scope.age=2;
$scope.people=[{name:“Sam”,年龄:2},{name:“Pam”,年龄:3},{name:“Ham”,年龄:4}];
$scope.filterPeople=函数(个人){
返回$scope.age==2 | | person.name==Sam;
};
});
引导(文档,['app'])代码>
年龄:
这是如何工作的,请查看条件以及我需要在ng选项中显示的对象“如果年龄为2,返回Pam和Ham,否则如果年龄为1,返回Sam”的逻辑是什么您可以在下面检查我的答案