2016-08-04 77 views
-1

我有以下阵列:如何使用,如果在NG-重复和数组去除NG选项重复的节目组合条件

owner_users = [{username : "sam", name:"Sampath", email:"xyz" }, 
{username : "ram", name:"Ram Mohan", email:"asd" }, 
{username : "shyam", name:"Shyam pandey", email:"wer" }] 

admin_users = [{username : "sam", name:"Sampath", email:"xyz" }, 
{username : "pandey", name:"Mangal Pandey", email:"yuy" }, 
{username : "ameer", name:"Gajini", email:"tyrt" }, 
{username : "shyam", name:"Shyam pandey", email:"wer" }] 

test_users = [{username : "kiran", name:"Kiran", email:"kiran" }, 
{username : "pandey", name:"Mangal Pandey", email:"yuy" }, 
{username : "balu", name:"Balakrishna", email:"balu.krsh" }, 
{username : "shyam", name:"Shyam pandey", email:"wer" }] 

我正在制作表格中的project_details的ng-repeat。 project_details数组具有对象属性 - project_type,owner_name,comment。对于owner_name,我必须在ng选项中列出这些用户类型的组合。就像如果project_type是新的,那么我必须显示owner_user和test_users的组合列表。如果project_type是旧的,那么我必须显示owner_users和admin_users的组合列表而不重复。

我如何在angularJS中实现这一点?

+2

你有什么迄今所做? – Mistalis

+0

兄弟请给更多的信息,否则检查相关的问题http://stackoverflow.com/questions/23595034/removing-duplicates-from-angular-js-ng-options-ng-repeat http://jsfiddle.net/YJQx6/5 / –

回答

0

首先,我使用concat函数为每个可能的project_type组合数组。

例:old_project_users = owner_users.concat(admin_users);

要删除重复,我使用的unique filter from AngularUI(源代码可在这里:AngularUI唯一滤波器),并且直接在NG-选项使用它。

为了显示基于条件的用户列表,我使用了ng-if在ng-repeat内部保留div内的选择标签。

例:

<div ng-if="project_type ='new'"> 
    <select ng-model="project.owner" ng-options="user.username for user in new_project_users| unique:'username'">  
    </select> 
    </div> 
<div ng-if="project_type ='old'"> 
    <select ng-model="project.owner" ng-options="user.username for user in old_project_users| unique:'username'">  
    </select> 
    </div>