我正在尝试在ng-repet中设置ng-selected true 我的HTML:
<select ng-model="editActivities.NewArea">
<option ng-repeat="area in areas" value="{{area.ID}}" ng-selected="editActivities.Area.ID==area.ID">{{area.Name}}</option>
</select>
区域对象:
{Name : "City1", ID : "1"}
{Name : "City2", ID : "2"}
{Name : "City3", ID : "3"}
editActivities.Area.ID的值为2。
当我在editActivities.Area.ID和area.ID中打印值时,打印:
1 2 , 2 2 , 2 3
并且仍未选择city2。
我也注意到所选的选项是:
<option value="? undefined:undefined ?"></option>
答案 0 :(得分:1)
根据您的问题的详细信息,您的控制器代码类似于:
$scope.areas = [{
Name: "City1",
ID: "1"
}, {
Name: "City2",
ID: "2"
}, {
Name: "City3",
ID: "3"
}];
$scope.editActivities = {
Area: {
ID: "2"
},
NewArea: "2"
};
在这种情况下,您可以简单地使用ng-options指令并让ng-model绑定处理初始选择,如下所示:
<select ng-model="editActivities.NewArea" ng-options="area.ID as area.Name for area in areas">
这是一个有效的plunk
答案 1 :(得分:0)
你应该只使用ng-options:
<select ng-model="editActivities.NewArea" ng-options="area as area.Name for area in areas">
</select>
和往常一样,模型是角度的单点真实。因此,所选选项是存储在editActivities.NewArea
中的选项。
因此,如果您想要选择第一个区域,请在控制器中使用以下内容:
$scope.editActivities = {
NewArea: $scope.areas[0]
};
答案 2 :(得分:0)
请将您选择的ng更改为以下内容;有一个比较语句('==')而不是赋值('=')
ng-selected="editActivities.Area.ID=area.ID"
答案 3 :(得分:0)
不应使用ng-selected,而应设置模型值,即在控制器中设置 SELECT item.text
FROM item
JOIN shortwords ON item.item_id = shortwords.item_id
WHERE shortwords.word = 'php'
OR shortwords.word = 'it'
OR shortwords.word = 'hr'
。基本上当有模型绑定到下拉列表时,它将忽略第一次ng-seleted。如果从select标签中删除ng-model,则会出现默认值。
试试下面的plunker。
没有ng-model - https://plnkr.co/edit/0Mj1LHhJgkrluWGQLdBn?p=preview
使用ng-mdoel - https://plnkr.co/edit/89PqDYdbfrGwUOHLIGMU?p=preview