Angularjs 角度ng选项对象链接到ng重复对象

Angularjs 角度ng选项对象链接到ng重复对象,angularjs,angularjs-ng-repeat,angularjs-ng-options,Angularjs,Angularjs Ng Repeat,Angularjs Ng Options,我对angular有一个问题,在选择标记上使用ng选项,默认选择的元素应该由ng repeat元素中“company”中的属性确定。 请看以下代码: <tr data-ng-repeat="company in companies"> <td><input data-ng-model="company.Name" value="{{company.Name}}" /></td> <td> <select da

我对angular有一个问题,在选择标记上使用ng选项,默认选择的元素应该由ng repeat元素中“company”中的属性确定。 请看以下代码:

<tr data-ng-repeat="company in companies">
   <td><input data-ng-model="company.Name" value="{{company.Name}}" /></td>
   <td>
     <select data-ng-model="selectedSeller" data-ng-options="seller.Login for seller in sellers">
     </select>
  </td>
</tr>

我可以通过控制器范围中的$scope.selectedSeller=$scope.companys[0]在所有元素上设置默认元素,但我真正想要的是,通过将seller对象链接到company对象,将selected设置为对公司负责的人。 我需要某种方法来实现下面代码中的“isSelected”

<tr data-ng-repeat="company in companies">
   <td><input data-ng-model="company.Name" value="{{company.Name}}" /></td>
   <td>
     <select data-ng-model="selectedSeller" isSelected="company.responsible == seller.id" data-ng-options="seller.Login for seller in sellers">
     </select>
   </td>
</tr>


有人知道如何解决这个问题吗?

角度是数据驱动的,所以您只需指定模型,ng模型将其连接到输入

所以你只提供ng模型,没有价值,也没有“isSelected”

看看这个例子:

select的模型是company.seller,它连接到seller.id,ng选项的语法可以确定什么用作标识符,什么是标签

<select data-ng-model="selectedSeller" data-ng-options="seller.Login for seller in sellers" ng-init="selectedSeller = $filter('filter')($scope.company, {responsible: seller.id})[0]">
     </select>
还有一点需要补充,标识符不仅可以是id,还可以是整个对象。

将过滤器用作:


{{公司责任已选定}

这是错误的,selectedSeller对于迭代中的每个项目都是相同的。选择必须连接到公司的属性。如果要设置默认值,只需将其设置为模型。是否已编辑?你几乎忘记了我的代码:)但你的代码还是很脏。如果选择了列表,您不需要通过列表进行迭代来确定,并且默认值不应该以这种方式执行。设置模型的方法完全相同,而且更干净。欢迎您,我也希望+1并检查是否正确:)几乎:)+1是向上箭头。但最重要的是你很满意:)没有足够的声誉来按下这个按钮:(还需要两个积分似乎13/15没关系,只是享受stackoverflow:)
var StackController = function() {
  this.companies = [
    {
      name: 'company 1',
      responsible : 1
    },
     {
      name: 'company 2',
      responsible : 2
    },
     {
      name: 'company 3',
    }
  ];

  this.sellers = [
    {
      login : 'pavel',
      id : 1,
    },
    {
      login : 'petr',
      id : 2,
    },
    {
      login : 'igor',
      id : 3,
    }
  ];
};

angular.module('stackApp', [])
  .controller('StackController', StackController);
seller.id as seller.login for seller in vm.sellers
<select data-ng-model="selectedSeller" data-ng-options="seller.Login for seller in sellers" ng-init="selectedSeller = $filter('filter')($scope.company, {responsible: seller.id})[0]">
     </select>