Angularjs 具有角度的动态预选下拉列表

Angularjs 具有角度的动态预选下拉列表,angularjs,drop-down-menu,angularjs-directive,Angularjs,Drop Down Menu,Angularjs Directive,在javascript中,我有两个对象数组,并尝试使用angular.js在html中创建下拉列表: $scope.members=[ {name: "Paul", position: "Vocals"}, {name: "John", position: "Guitar"}, {name: "George", position: "Guitar"}, {name: "Ringo", position: "Drums"} ]; $scope.positions=

在javascript中,我有两个对象数组,并尝试使用angular.js在html中创建下拉列表:

$scope.members=[
    {name: "Paul", position: "Vocals"},
    {name: "John", position: "Guitar"},
    {name: "George", position: "Guitar"},
    {name: "Ringo", position: "Drums"}
];

$scope.positions=[
    {label: "Guitar"},
    {label: "Vocals"},
    {label: "Drums"}
];
HTML:


{{member.position}
当前HTML将成员的位置复制3次,作为下拉列表中的唯一选项。例如,在加载页面时,Ringo的位置在下拉列表中被预选为“鼓”(应该是这样)。但是当点击下拉菜单时,Ringo的选项是“鼓”、“鼓”和“鼓”。它们应该是“鼓”、“人声”和“吉他”


有没有办法让所有选项都可用,并在加载时预选正确的选项?什么是正确的指令?

AngularJS有一个专门用于选择控件的指令。使用它而不是
ng repeat

var-app=angular.module('plunker',[]);
app.controller(“MyCtrl”,函数($scope){
$scope.members=[
{姓名:“保罗”,位置:“人声”,活着:真的},
{姓名:“约翰”,位置:“吉他”,活着:假},
{姓名:“乔治”,位置:“吉他”,活着:假},
{名称:“林戈”,位置:“鼓”,活着:真}
];
$scope.positions=[
{标签:“吉他”},
{标签:“人声”},
{标签:“鼓”}
];
});

  • {{member.name} 活着的
<select ng-model="selectedBeetle" ng-options="member as member.name for member in members"></select>
<select ng-model="selectedBeetle.position" ng-options="position.label for position in positions"></select>
{{成员| json}


此解决方案为下拉列表提供正确的选项,但不预选任何内容。加载时,下拉列表为空。此答案已被标记为低质量,可供查看。请允许我请求您通过指定您提供的代码的用途、解释指令中使用的表达式来改进您的答案。此解决方案为下拉列表提供了正确的选项,但不预先选择任何内容。加载时,下拉列表为空。如果需要预先选择的内容,请设置$scope.selectedbellet=$scope.members[0];(或您希望预先选择的任何一个)在同一位置将数组分配给$scope。这不是一个固定值吗?在这种情况下(其中$scope.selectedbellet=$scope.members[0]又名Paul),下拉列表中的默认选择将是所有成员的“人声”,而不仅仅是一个。谢谢!那正是我要找的!有没有一种方法可以对二进制变量(如复选框)执行相同的操作?例如,成员中会有另一个类别,称为“活着”。如果alive==true/false,默认情况下复选框将被选中/取消选中。我知道这可以用jade完成,但我想知道是否可以用普通HTML或angular完成。。。
<select ng-model="selectedBeetle" ng-options="member as member.name for member in members"></select>
<select ng-model="selectedBeetle.position" ng-options="position.label for position in positions"></select>