Javascript angular和ng选项以及json

Javascript angular和ng选项以及json,javascript,angularjs,ng-options,Javascript,Angularjs,Ng Options,我有一个类似的json: { "0":{"login":"user1","licenses":{"x":4},"open":true}, "1":{"login":"user2","licenses":{"x":6,"xx":9,"xxx":7},"open":true} } 还有这个 <select ng-model="userToAdd" ng-options="user.login as user.login for user in listUsers"><

我有一个类似的json:

{
   "0":{"login":"user1","licenses":{"x":4},"open":true},
   "1":{"login":"user2","licenses":{"x":6,"xx":9,"xxx":7},"open":true}
}
还有这个

<select ng-model="userToAdd" ng-options="user.login as user.login for user in listUsers"></select>

您的
listUsers
是一个对象,而不是数组。因此,应相应更改ng选项:

ng-options="user.login as user.login for (_, user) in listUsers"
或者,您可能需要更改
listUsers
格式,使其成为正确的数组。不要使用递增的
indexLogin
,只需在每一步创建一个新对象,然后将此对象推入
listUsers
数组使用
.map
准备一个合适的对象数组:

$scope.listUsers = [];
$http.get('listUser').success(function(data) {
    $scope.listUsers = _.map(data, function(licenses, userLogin){
        var user = {
           login: userLogin,
           open: false,
           licences: {}
        };
        _.each(licenses, function(license){
            var featureName = license.feature.name;
            user.licences[featureName] = (user.licences[featureName] || 0) + 1;
        });
        return user;
    })
});

请显示您的ng控制器代码。
$scope.listUsers = [];
$http.get('listUser').success(function(data) {
    $scope.listUsers = _.map(data, function(licenses, userLogin){
        var user = {
           login: userLogin,
           open: false,
           licences: {}
        };
        _.each(licenses, function(license){
            var featureName = license.feature.name;
            user.licences[featureName] = (user.licences[featureName] || 0) + 1;
        });
        return user;
    })
});