如果第二个字段不为空,则Ng-options下拉连接字段

Jas*_*euw 3 javascript angularjs angularjs-ng-repeat ng-options

我有一个表用户,每个用户都有一个用户名,但表中也有一个可以为空的displayname.我想在下拉菜单中显示其用户名,如果可用,还显示其显示名称.

因此,没有displayname的用户将显示如下:

<option value="1">*Username*</option>
Run Code Online (Sandbox Code Playgroud)

并且具有displayname的用户将是:

<option value="1">*Displayname* (*Username*)</option>
Run Code Online (Sandbox Code Playgroud)

我当前的选择只是一个常规的角度ng选项选择.

<select name="Employee" ng-model="selectedUser" ng-options="user.Username for user in unAssignedUsers" required>
Run Code Online (Sandbox Code Playgroud)

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

Max*_*tin 8

我会写一些类似的东西:

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

控制器:

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 + ")";
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

演示 Fiddle