3

我有一个表用户,每个用户都有一个用户名,但表中还有一个可以为空的显示名。我想在下拉列表中显示所有用户及其用户名,如果可用,还显示他们的显示名。

因此,没有显示名称的用户将显示为:

<option value="1">*Username*</option>

具有显示名称的用户将类似于:

<option value="1">*Displayname* (*Username*)</option>

我当前的选择只是一个常规的角度 ng-options 选择。

<select name="Employee" ng-model="selectedUser" ng-options="user.Username for user in unAssignedUsers" required>

我不知道如何使用 ng-options 解决这个问题,我到处搜索,但找不到。任何帮助,将不胜感激!

4

1 回答 1

8

我会写这样的东西:

<select name="Employee" 
        ng-model="selectedUser"
        ng-options="selectedUser as combined(selectedUser) for selectedUser in unAssignedUsers" required>

控制器

function MyCtrl($scope) {
    $scope.unAssignedUsers = [{
        "Displayname": "GeneralDisplayname",
        "Username": "GeneralUsername"
    }, {
        "Displayname": "SuperDisplayname",
        "Username": "Super"
    }, {
        "Displayname": "",
        "Username": "UsernameTrial"
    }];
    $scope.selectedUser =  $scope.unAssignedUsers[0];

    $scope.combined = function(user){
        if(user.Displayname == undefined || user.Displayname == ''){
            return user.Username;
        }
        else {
            return user.Username + " (" + user.Displayname + ")";
        }
    }
}

演示Fiddle

于 2013-11-07T09:37:45.187 回答