我想根据值而不是索引位置在选择菜单中设置默认项。例如,在下面的示例中,如果表单中的一个单选按钮显示" Oranges,"并且用户选择该单选按钮,是否可以使后续选择菜单中的默认选择为橙色?理想情况下,我宁愿不依赖选择菜单中的项目顺序。
<input type="radio" ng-model="selectionList.message" value="{{selection.type}}">
<!--Default selection below should be based on value selected above, regardless of order-->
<select ng-model="editProject.project" ng-options="opt as opt.type for opt in editProject.options">
</select>
有没有办法根据值而不是项目在选择菜单中的位置设置默认值?
答案 0 :(得分:1)
每radio input个文档,您可以添加ng-change
挂钩
<input type="radio"
ng-model=""
value=""
[name=""]
[ng-change=""]
ng-value="">
喜欢ng-change="editProject.project = selection.type"
答案 1 :(得分:1)
不完全确定你应该看起来是什么样的,或者说你正在拉的数据结构是什么样的。但是在你的ng-change中,你看起来正在使用一个与你试图操作的dataStructure不同的值。即。使用数组值返回对象中的嵌套值。看看下面的情况是否适用。我还做了一个plnkr.co,展示了它的一个例子。但这里有主要的片段
<input type="radio" ng-model="color"
value="{{radioColors.type[1]}}"
ng-change="match()">Orange<br>
//选择元素
<select ng-model="selectValue"
ng-options="selectColor as selectColor.type for selectColor in selectColors"></select>
//这将进入你的控制器
$scope.match = function () {
angular.forEach($scope.selectColors, function(value, key) {
if(angular.equals(value.type, $scope.color)) {
$scope.selectValue = $scope.selectColors[key]
}
});
}