我有一个包含一系列对象的工厂。每个对象都包含有关员工的信息,如下所示:
的DataFactory :
app.factory('DataFactory', function(){
return [
{
'name': 'John Smith',
'shifts':[ //this might need to be {}
{'start':new Date(2014, 06, 25, 1, 30),
'end': new Date(2014, 06, 25, 22, 30)
},
{'start':'/*somedate*/',
'end': '/*someDate*/'
}
]
}
];
});
我正在尝试根据使用该应用的用户选择的用户在名为CurrentUser的工厂中设置值。
CurrentUser :
app.factory('CurrentUser', ['DataFactory', function(DataFactory){
var service = {};
service.indexVal;
service.user = DataFactory[service.indexVal];
return service;
}]);
HTML :
<select ng-model="CurrentUser.indexVal">
<option ng-repeat="employee in DataFactory" value="{{$index}}">
{{employee.name}}
</option>
</select>
Current User: {{CurrentUser.user.name}}<br />
然而,有了这个,没有名称价值。选择名称后,它不会显示“john smith”。
当我将其保留为CurrentUser.user时,它不显示用户的整个对象,而是显示indexVal。
如何让它显示名称?
答案 0 :(得分:1)
如果要绑定到模型值,请使用ng-options:
<select ng-model="CurrentUser.user" ng-options="employee as employee.name for employee in DataFactory">
</select>
Current User: {{CurrentUser.user.name}}<br />