0

我試圖用ng選定一個默認選定值,但它不起作用。用ng-repeat選擇時的默認選定值

我的代碼是

<select 
    id="department" 
    name="department" 
    class="form-control" 
    ng-model="editProfilCtrl.infos.department" 
    ng-change="editProfilCtrl.findCities()"> 
     <option 
      ng-repeat="dep in editProfilCtrl.infos.departments" 
      class="text-uppercase" 
      value="{{dep}}" 
      ng-selected="{{dep.idDepartment == editProfilCtrl.infos.department}}"> 
      {{editProfilCtrl.infos.department}} - {{dep.idDepartment}} - {{dep.code}} - {{dep.name}} 
     </option> 
</select> 

在我的下拉列表中我有這樣的結果:

  • (空)
  • 1 - 1 - CODE01 - TEST1
  • 1 - 2 - Code02 - TEST2
  • 1 - 3 - Code03 - TEST3
  • ...

您可以看到editProfilCtrl.infos.department = 1。因此,通常它必須在默認情況下被選中。但是這是被選中的空行:/。 你有想法嗎?

感謝。

編輯:MAC gyver 「解決方案」:

<select 
    id="department" 
    name="department" 
    class="form-control" 
    ng-model='editProfilCtrl.infos.department' 
    ng-change="editProfilCtrl.findCities()" 
    ng-options='dep as dep.code + " - " + dep.name for dep in editProfilCtrl.infos.departments'> 
</select> 

在我的控制器:

self.infos.selectedDepartment = editProfilFormDto.department; 
self.infos.departments = editProfilFormDto.departments; 
self.infos.department = self.infos.departments[self.infos.selectedDepartment - 1]; 
+0

附加<期權價值= 「」> ---請選擇--- –

+0

它不工作。現在,我有空行,行,另一行。但是,它總是被選中的空行。 – Paladice

回答

2

你檢查過文檔還是在谷歌搜索?基於我所知道的,你不能用這種方法做一個默認值。並且還有一個專門的指令來高效地制定選項。

我是新手,但希望我幫你解答。

使用ngOptions https://docs.angularjs.org/api/ng/directive/ngOptions

/** 
 
    somewhere in your controller 
 
*/ 
 
    editProfilCtrl.infos.department = editProfilCtrl.infos.departments[0]
<select 
 
    id="department" 
 
    name="department" 
 
    class="form-control" 
 
    ng-model="editProfilCtrl.infos.department" 
 
    ng-change="editProfilCtrl.findCities()" ng-options="dep.idDepartment+' '+dep.code+' '+dep.name for dep in editProfilCtrl.infos.departments"></select>

+0

不工作.... !!!!!! – Sam

1

一個簡單的方法可以設置editProfilCtrl.infos.department:

editProfilCtrl.infos.department = editProfilCtrl.infos.departments[0] 

在您的控制器中,並且不要使用ng-selected

+0

總是不能正常工作:/但它適用於ng選項和您的解決方案。看到我編輯的帖子;)。謝謝 – Paladice