Angularjs 如何在angular 1中同时使用ng if和ng选项

Angularjs 如何在angular 1中同时使用ng if和ng选项,angularjs,ng-options,Angularjs,Ng Options,我使用下面的语法来显示用户名。我想在下面的列表中显示user.company==userData.company时的用户名。请帮助我实现这一目标 <select ng-options="user.FirstName+' 'user.LastName for user in companyUsers | orderBy:'FirstName' track by user.Id" ng-if="user.company==userData.company" ng-model="selected

我使用下面的语法来显示用户名。我想在下面的列表中显示user.company==userData.company时的用户名。请帮助我实现这一目标

<select ng-options="user.FirstName+' 'user.LastName for user in companyUsers | orderBy:'FirstName' track by user.Id" ng-if="user.company==userData.company" ng-model="selectedUser" ng-change="loadListNew()">
</select>

您的代码中有一个错误:user.FirstName+“”+user.LastName,您忘记了第二个+

更新代码:

<select ng-options="user.FirstName + ' ' + user.LastName for user in companyUsers | orderBy:'FirstName' track by user.Id" 
    ng-if="user.company==userData.company"
    ng-model="selectedUser"
    ng-change="loadListNew()">
</select>
但问题是ng if不适用于ng选项,因为ng选项不会创建新的作用域

您应该做的是创建一个过滤器,从输入中删除数据,这样ng选项将跳过它。您可以在orderBy筛选器之前或之后应用它。

使用ng if=user.company==userData.company不起作用,因为这将应用于select元素

过滤器选项

相反,您可以在ng选项中直接使用过滤器,如下所示

过滤文档


无法获取user.company,因为company以数组形式出现。{companyName:{company:'xxx'},…}请添加一个您正在使用的数据示例,它极大地帮助了试图帮助您的人。无法获取user.company,因为company是一个数组。{公司名称:{公司:'xxx'},…}。请提供帮助。您可以通过调用具有如下参数的函数来替换筛选器:{shade:'dark'},然后在该函数中执行任何操作,该函数将返回布尔值。{LocationId:1,PhoneNumber:null,Company:{CompanyName:xxx,Color:{ColorName:306448,Id:3,}现在如何应用筛选器。我可以添加这样的筛选器吗:isDarkShadeoptionUserId.Company.CompanyNameWell。我不知道您的OptionSerID来自何处。您应该将您的用户作为参数从companyUsers传递。然后您只需比较用户和条件模型之间的内容。
    You may move your logic to controller rather than in html. You may filter data $scope.companyUsers before bind it to select options. 

    $scope.companyUsers =  // where you assign the value to companyUsers of scope variable. below this code do something like
    $scope.companyUsers = $scope.companyUsers.map( function(companyUserObj){
     if(companyUserObj.company==$scope.userData.company)
    {
       return companyUserObj;
    }

    })
now bind this $scope.companyUsers to select options as below.
<select ng-options="user.FirstName+' '+user.LastName for user in companyUsers | orderBy:'FirstName' track by user.Id" ng-model="selectedUser" ng-change="loadListNew()">
</select>