使用ng-repeat选择默认选择的值

时间:2016-06-14 09:07:54

标签: angularjs angularjs-ng-repeat angularjs-select

我正在尝试使用ng-selected的默认选择值,但它不起作用。

我的代码是

<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];

2 个答案:

答案 0 :(得分:2)

你检查过文档还是在google上搜索过?根据我所知,你不能使用这种方法做一个默认值。并且还有一个专门的指令来有效地制定选项。

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

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

&#13;
&#13;
/** 
  somewhere in your controller
*/
    editProfilCtrl.infos.department = editProfilCtrl.infos.departments[0]
&#13;
  <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>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

一种简单的方法是设置editProfilCtrl.infos.department:

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

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

相关问题