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

3

我有一个用户表,每个用户都有一个用户名,但表中还有一个可空的显示名称。我想在下拉列表中显示所有用户的用户名,并且如果有显示名称也同时显示。

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

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

一个具有显示名称的用户将会像这样:

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

我的当前选择只是一个普通的Angular ng-options选择器。

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

我不知道如何使用ng-options解决这个问题,我已经到处搜索了,但是找不到答案。 希望能得到帮助!


请发布“unAssignedUsers”模型和控制器。 - Maxim Shoustin
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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接