簡體   English   中英

從列表中刪除項目時,如何在選擇框中設置默認選項-angularjs

[英]How can I set the default option in select box when an item was removed from the list - angularjs

我有一個angularjs控制器和html視圖,其中顯示了雇員姓名列表,以及他們是否是主管,最后是可供選擇的主管列表。 列表中將始終至少有一位默認主管,在這種情況下為Sally。

主管下拉菜單可以根據“主管”來更改。 選擇。 如果將員工設置為主管,則其姓名將顯示在下拉列表中。 如果將員工設置為不是主管,則其姓名將從主管列表中刪除,然后也從下拉列表中刪除。

在此示例中,我們有默認主管Sally,另外一名雇員Tom也被標記為主管。

讓我們將哈里的主管換成湯姆。

現在,如果我將Tom不再擔任主管,我希望Harry的主管下拉菜單將更改為默認主管Sally。 但是,相反,在Harry旁邊的下拉列表中出現了一個“空白”選項。

這就是問題所在,有人對如何解決此問題有任何建議嗎?

您可以在https://jsfiddle.net/w7gy6hn3/找到代碼

<select ng-init="defaultSupervisorId = responsiblePerson.id"
    ng-model="defaultSupervisorId" 
    ng-options="supervisor.id as (supervisor.name + ' ' + supervisor.id) for supervisor in supervisorList">
</select>

這是更新的小提琴https://jsfiddle.net/55uk6m8L/只需將以下額外的代碼添加到您的控制器

$scope.updateDropDown = function(employee) {

 for(var i=0;i<$scope.employees.length;i++)
 {
   if($scope.employees[i] != employee && $scope.employees[i].defaultSupervisorId == employee.id )
   {

     $scope.employees[i].defaultSupervisorId = $scope.supervisorList[0].id;
   }
 }

  };

在splice方法之后在else塊中的$ scope.updateSupervisorList函數中調用此函數

 $scope.updateDropDown(employee);

而且在html中,我更改了這些行

<select ng-init="employeeInfo.defaultSupervisorId = responsiblePerson.id"
                            ng-model="employeeInfo.defaultSupervisorId" 
                            ng-options="supervisor.id as (supervisor.name + ' ' + supervisor.id) for supervisor in supervisorList">
                    </select>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM