2017-05-04 69 views
3

我正在使用AngularJS应用程序。我正在尝试创建一个允许用户选择三个单选按钮之一的页面。三者中的两个也在其下面具有复选框,以允许用户如果选择了适当的单选按钮则选择附加选项。为了防止不正确的复选框选择,我试图在复选框上设置ng-disabled属性。到目前为止,这不起作用,我尝试了几次不同的迭代。ng-disabled对单选按钮和复选框不起作用

这是我的HTML:

<div class="panel-body"> 
     <input type="radio" id="notFraudulent" name="actionSelector" ng-model="cleared" /><label for="notFraudulentRadio"> Not Fraudulent</label><br /> 
     <input type="checkbox" id="highVolumeCustomer" ng-model="highVolumeCustomer" ng-disabled="(fraudulent||cleared)" /><label for="highVolumeCustomer"> High Volume Customer</label><br /> 
     <br/> 
     <input type="radio" id="appearsFraudulent" name="actionSelector" ng-model="fraudulent" /><label for="isFraudulentRadio"> Appears Fraudulent</label><br /> 
     <input type="checkbox" id="reportAccount" ng-model="reportAccount" ng-disabled="(cleared||reviewed)" /><label for="reportAccount"> Report Account</label><br /> 
     <br/> 
     <input type="radio" id="markReviewed" name="actionSelector" ng-model="reviewed" /><label for="markReviewed"> Mark As Reviewed For Later</label> 
    </div> 

我试图改变在NG-禁用表情运营商& &,因为我已经看到了一些文章在那里的建议,运营商并不意味着什么人们认为他们的意思。但是这并不起作用,如果我在表达式中只放一个条件,它也不起作用。控制器中没有任何东西试图使用或操纵HTML中的任何ng模型。我得出的结论是,我错过了关于单选按钮的东西,但我不能为我的生活弄清楚什么。

任何人都可以看到我的错误是什么?

回答

2

您应该使用value属性来绑定单选按钮的特殊值,并且当单选按钮的状态更改时,值将保留在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>

+0

此固定它。谢谢! – Ant