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”的逻辑是什么您可以在下面检查我的答案