使用 ng 模型有条件地过滤 ng 选项

Filter ng-options conditionally with ng-model

本文关键字:ng 过滤 选项 有条件 模型 使用      更新时间:2023-09-26

我想根据ng-model过滤ng-options。

这是联系人模态数组的预览

contactsModal = [
  {
    "account" : {
        "id" : 1
    },
    "first_name" : "Test"
  },
  {
    "account" : {
        "id" : 2
    },
    "first_name" : "Test 2"
  }
];

这是我的清单

<select 
ng-model="activityAddForm.contact_id" 
ng-options="contact.id as (contact.first_name+' '+contact.last_name) for contact in contactsModal | filter:contact.account.id==activityAddForm.account_id track by contact.id">
   <option value="">Choisir...</option>
</select>

以及用于条件的模型

<select 
ng-model="activityAddForm.account_id"
...

我想显示具有相同 account.id 的联系人,例如activityAddForm.account_id

我已经尝试过这条线,但不起作用。

 | filter:contact.account.id==activityAddForm.account_id

有什么帮助吗?

谢谢:)

尝试:

ng-options="contact.id as (contact.first_name+' '+contact.last_name) for contact in 
filteredContacts = ( contactsModal | filter:{'account':{'id':activityAddForm.account_id}}:true) track by contact.id"

安全方式:

app.filter('filterContact', ['$filter',function($filter) {
     return function(list, value) {
       return $filter('filter')(list, function(val, key){
            return val.account.id == value;
       })
     };
 }]);

//and your ng-option
ng-options="contact.id as (contact.first_name+' '+contact.last_name) for contact in 
contactsModal | filterContact:activityAddForm.account_id track by contact.id

尝试:

| filter:{ account: {id: activityAddForm.account_id } }