Javascript 如何将选项的选定状态绑定到AngularJS中的布尔值

Javascript 如何将选项的选定状态绑定到AngularJS中的布尔值,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,我有一个select元素列表,其中选项在JSON对象中定义。我希望每个选项以布尔形式保留选定状态,这意味着当用户选择一个选项时,该选项的“选定”值变为“true”,如果用户选择另一个选项,该值变为“false” 为了保持简单,请重新构建您的模型。大概是这样的: HTML <div ng-repeat="choice in choices"> {{choice.name}}: <select>

我有一个select元素列表,其中选项在JSON对象中定义。我希望每个选项以布尔形式保留选定状态,这意味着当用户选择一个选项时,该选项的“选定”值变为“true”,如果用户选择另一个选项,该值变为“false”


为了保持简单,请重新构建您的模型。大概是这样的:

HTML

<div ng-repeat="choice in choices">
            {{choice.name}}:
            <select>
                <option value="" ></option>
                <option ng-repeat="option in choice.options" ng-selected="option.selected">{{option.name}}</option>
            </select>
        </div>
{id=1, name='option1', selected=false}
<select ng-model="selectedChoice" 
ng-options="opt as opt for (opt, obj) in options">
    <option value=""></option>
</select>
$scope.options = {
    "option1":{
        id:1, 
        name:'option1', 
        selected:false
    },
    "option2":{
        id:2, 
        name:'option2', 
        selected:false
    },
    "option3":{
        id:3, 
        name:'option3', 
        selected:false
    }
}

$scope.$watch("selectedChoice",function(newVal, oldVal){
    if(!newVal) return;
    $scope.options[newVal].selected = true;
    $scope.options[oldVal].selected = false;
});