我正在开发一个AngularJS应用程序。我正在尝试创建一个页面,允许用户选择三个单选按钮之一。三个中的两个还在其下方具有复选框,以允许用户在他们选择了适当的单选按钮时选择其他选项。为了防止不正确的复选框选择,我试图在复选框上设置ng-disabled属性。到目前为止,它没有用,我已经尝试了几次不同的迭代。
这是我的HTML:
paste file1 file2 > mergedoutput
我已经尝试将ng-disabled表达式的运算符更改为&&,因为我看过一些文章,其中表明运算符并不意味着他们认为的意思。但这不起作用,如果我只在表达式中放入一个条件,它也不起作用。控制器(还)中没有任何东西试图使用或操纵HTML中的任何ng模型。我得出的结论是,在收音机按钮方面我有一些缺失,但我不能为我的生活弄清楚是什么。
谁能看出我的错误是什么?
答案 0 :(得分:3)
你应该使用value
属性为单选按钮绑定特殊值,当radiobutton的状态改变时,值将保持在ng-model
。
请参阅下面的代码段:
angular.module("app", [])
.controller("myCtrl", function($scope) {
$scope.selectedValue = 'cleared';
$scope.cleared = false;
$scope.fraudulent = false;
$scope.reviewed = false;
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div class="panel-body" ng-app='app' ng-controller="myCtrl">
<input type="radio" id="notFraudulentRadio" name="actionSelector" value="cleared" ng-model="selectedValue" /><label for="notFraudulentRadio"> Not Fraudulent</label><br />
<input type="checkbox" id="highVolumeCustomer" ng-model="highVolumeCustomer" ng-disabled="selectedValue === 'fraudulent' || selectedValue === 'cleared'" /><label for="highVolumeCustomer"> High Volume Customer</label><br />
<br/>
<input type="radio" id="isFraudulentRadio" name="actionSelector" value="fraudulent" ng-model="selectedValue"/><label for="isFraudulentRadio"> Appears Fraudulent</label><br />
<input type="checkbox" id="reportAccount" ng-model="reportAccount" ng-disabled="selectedValue === 'cleared' || selectedValue === 'reviewed'" /><label for="reportAccount"> Report Account</label><br />
<br/>
<input type="radio" id="markReviewed" name="actionSelector" value="reviewed" ng-model="selectedValue"/><label for="markReviewed"> Mark As Reviewed For Later</label>
<br>
cleared:{{cleared}}<br>
fraudulent:{{fraudulent}}<br>
reviewed:{{reviewed}}<br>
selectedValue: {{selectedValue}}
</div>