2014-10-30 68 views
0

如何在角度理解表达中设置一个复杂的'作为标签'?复杂的“作为标签”理解角度表达

这可能很简单,我只是没有得到它,或者它可能是不可能的,但我已到处寻找,我找不到解决方案的提示。我发现的唯一工作是在理解表达式中使用它之前,用你想要的确切字符串预先填充对象的'as label'属性(我希望避免)。

例如,我有一个这样的对象:

$scope.projects = [{ 
    "description": "Asset Management", 
    "code": "ASSET", 
    "fieldName": "Asset Evaluation Level" 
}, 
{ 
    "description": "Checklist", 
    "code": "CHECK", 
    "fieldName": "Checklist Scores" 
}, 
{ 
    "description": "IT Support", 
    "code": "IT", 
    "fieldName": "IT Support Ticket Number" 
}] 

我有一个选择与NG选项:

<select ng-model="jiraProject" class="form-control" ng-options="option as option.description for option in projects"></select> 

我想要的选项“的”标签出现在选择下拉菜单是这样的:

“资产管理公司(资产)”, “检查表(CHECK)”, “IT支持(IT)”

也许通过这样的语法?:

option as {options.description (option.code)} for option in projects 

感谢您的任何和所有的反馈提前!

回答

1

这样做:

<select ng-model="jiraProject" class="form-control" ng-options="option as option | formatOption for option in projects"></select> 

这:

yourModule.filter('formatOption', [function(){ 
    return function(option){ 
     return option.description + ' (' + option.code + ')'; 
    }; 
}]); 

Angularjs过滤器是如此真棒:-)

+0

我还没有考虑过滤器!他们真的很棒!在这之后我必须研究他们的所有用途! – Jonathan 2014-10-30 20:14:19

+0

尽管如此,谢谢!这是一个拯救生命的人! – Jonathan 2014-10-30 22:37:28

+0

不客气:-)每当必须使数据通过“管道”时,都会考虑使用过滤器。它诱使你进行函数式编程,这很酷:p – AlexHv 2014-10-31 09:09:29