如何将变量值赋给angularjs中select标签的ng-options值?

时间:2016-07-13 05:10:34

标签: angularjs

我在下面有select标记:

  <td class="style126">
    <select id="CountrySelect" name="country" class="form-control" style="width:42%;height:100%" ng-model="selectedCountry" required ng-options="Country as      Country.CountryName for Country in countries| orderBy:countryOrderProp">
      <option value="">--------Select--------</option>
    </select>
  </td>
  <td class="style126">
    <select id="departmentSelect" name="department" class="form-control" style="width:42%;height:100%" ng-model="selectedDepartment" required data-ng- change="updateDepartment()" ng-options="Department as Department.DeptName for          Department in Departments | orderBy:departmentOrderProp">
      <option value="">--------Select--------</option>
    </select>
  </td>

我尝试使用ngModel$stateParams分配值。我怎样才能做到这一点?

我的$stateParams是:

$scope.course = $stateParams.course;
$scope.selectedCountry = $stateParams.country;
$scope.selectedDepartment= $stateParams.Deptname;

1 个答案:

答案 0 :(得分:0)

您的ng-options是

Department as Department.DeptName for Department in Departments

这意味着您希望每个选项值都是部门本身(即对象),但要显示为部门的名称。因此,需要明确的是,当您从此选择框中选择一个部门时,将为selectedDepartment分配整个部门对象。不是它的名字。

必然结果是,如果要从包含部门名称的状态参数中预选部门,则需要在部门数组中找到具有给定名称的部门对象,并将此部门对象分配给{ {1}}。

或者您可以选择将ng选项更改为

selectedDepartment

然后在选择部门时,Department.DeptName for Department in Departments 将设置为所选部门的名称。因此,您可以将部门名称指定给selectedDepartment以预先选择它。