将Angular(javascript)表达式转换为对象数组

时间:2015-11-07 08:21:40

标签: javascript arrays angularjs

你能告诉我如何将下面提到的角度下拉框表达式转换为对象数组吗? B'cos我必须使用对象数组而不是角度表达式和下面提到的下拉指令。谢谢提前。

a.id as a.num + ', '+ a.townName for a in vm.schoolDistricts

这是指令:Typeahead Dropdown

1 个答案:

答案 0 :(得分:0)

正如@Grundy和我在评论中指出的那样,这个指令只能从你的数组中获取任何属性。因此,为了克服这个问题,您可以包含您想要的表达式

a.num + ', '+ a.townName

在每个数组元素中。

如果你当前的数组看起来像,

schoolDistrict = [{name:"ABC", value: "ABCVal", num: "123", townName: "myTown"}, ....]

然后它需要改为像,

schoolDistrict = [{name:"ABC", value: "ABCVal", num: "123", townName: "myTown", typeAheadLabel:"123, myTown"}, ....]

通过这个,您可以在配置中使用typeAheadLabel,例如

$scope.config = {
        modelLabel:'districts',
        optionLabel:'typeAheadLabel'
    };

在视图中,您可以使用类似

的内容
<typeahead-dropdownng-model="vm.property.schoolDistrictId" class="form-control" 
      options="vm.schoolDistricts" config="config" required> 
<option value="" disabled="">-- Select a School District --</option> </typeahead-dropdown>