我需要一些帮助。我无法在对象中创建$scope.headline.category
,它必须保留一个字符串。 groupList
必须是对象列表。如何将下拉列表的初始值设置为第2项(1索引)?我可以通过控制器设置它,但我有很多项目,似乎应该有一个更简单的方法...也许使用ng-init
?谢谢你的帮助。
我尝试过但不起作用:
ng-init="headline.category = group.label"
我尝试过的确有效,但我觉得这样更容易?
for (var a = 0; a < $scope.headlineList.length; a++) {
for (var b = 0; b < $scope.groupList.length; b++) {
if ($scope.headlineList[a].category == $scope.groupList[b].label) {
$scope.headlineList[a].category = $scope.groupList[b];
}
}
}
角
$scope.headline.category = "B";
$scope.groupList = [ {label: "A"}, {label: "B"}, {label: "C"} ];
HTML
<select ng-model="headline.category" ng-options="group.label for group in groupList"></select>
答案 0 :(得分:1)
我认为您只需要控制器中的以下内容:
app.controller('MyCtrl',function($scope){
$scope.headline = { category: "B" }
$scope.groupList = [ {label: "A"}, {label: "B"}, {label: "C"} ];
});
选择更改为:
<select ng-model="headline.category" ng-options="group.label as group.label for group in groupList"></select>
关键更改是将标题设置为{ category: "B" }
的对象(通过我正在猜测的某种ajax调用设置这种方式)和选项开头的group.label as
来指示值从类别对象中应用到模型。
答案 1 :(得分:0)
<强>已更新强> 尝试:
<select ng-model="headline.category" ng-init="headline.category = groupList[index]" ng-options="group.label for group in groupList"></select>
位指示:
angular.forEach($scope.groupList, function(value, key) {
if(value.label == $scope.headline.category){
$scope.index = key;
}
});
带有演示的