关于角控制器,我有以下几点:
$scope.emailsConfig = {
valueField: 'email',
labelField: 'name',
options: [{email: 'brian@dn.cm', name: 'Brian'},
{email: 'nikola@tl.com', name: 'Nikola'}],
}然后我有以下几点:
<select selectize="emailsConfig" ng-model="emails"></select>这个很好..。但后来我改变了选择:
options: UserService.GetEmails()这不管用。当我记录选项并获得:
{"Emails":[{email: 'brian@dn.cm', name: 'Brian'}, {email: 'nikola@tl.com', name: 'Nikola'}]}我怎样才能得到电子邮件中的价值?
我尝试了UserService.GetEmails().Emails,但不知怎么地变得没有定义
更新
UserService.GetEmails()如下:
application.service('UserService', function ($http) {
return {
GetEmails: function () {
return $http.get('api/users/emails');
}
}
}发布于 2015-01-26 21:54:02
该服务正在返回$http返回的承诺。您仍然需要添加返回数据的回调。可以使用success()或then()
试试这个:
UserService.GetEmails().success(function(resp){
$scope.emailsConfig = {
valueField: 'email',
labelField: 'name',
options: resp.Emails
}
}).error(function(){
alert('Ooops')
});要将更多这样的操作移到服务中,然后从控制器中移出,您可以执行以下操作:
application.service('UserService', function ($http) {
return {
GetEmails: function (callback) {
$http.get('api/users/emails').success(function (resp) {
var config = {
valueField: 'email',
labelField: 'name',
options: resp.Emails
}
callback(config);
}).error(function () {
alert('Oooops');
});
}
}
}然后在控制器中
UserService.GetEmails(function(emailsConfig){
$scope.emailsConfig = emailsConfig;
})https://stackoverflow.com/questions/28159271
复制相似问题