Javascript 如何仅在angular.js中选中动态加载视图的所有复选框时启用该按钮

Javascript 如何仅在angular.js中选中动态加载视图的所有复选框时启用该按钮,javascript,html,css,angularjs,Javascript,Html,Css,Angularjs,在angular.js中我有以下视图,其中我有几个复选框用于协议的各种条款 <div class="modal-body"> <div class="col-xs-12 form-group"> <p>I acknowledge that I understand the following:</p> <div class="checkbox" > <label> <

在angular.js中我有以下视图,其中我有几个复选框用于协议的各种条款

<div class="modal-body">
<div class="col-xs-12 form-group">
    <p>I acknowledge that I understand the following:</p>
    <div class="checkbox" >
        <label>
          <input type="checkbox" ng-model="agreement.term1">Some term1 goes here
        </label>
    </div>
    <div class="checkbox" >
        <label>
          <input type="checkbox" ng-model="agreement.term2"> Some term2 goes here 
          is not a credit transaction.
        </label>
    </div>
    <div class="checkbox" >
        <label>
          <input type="checkbox" ng-model="agreement.term3"> Some term3 goes here
        </label>
    </div>
    <div class="checkbox" >
        <label>
          <input type="checkbox" ng-model="agreement.term4"> Some term4 goes here
        </label>
    </div>
    <div class="checkbox">
        <label>
          <input type="checkbox" ng-model="agreement.term5"> Some term5 goes here
        </label>
    </div>
    <div class="checkbox" >
        <label>
          <input type="checkbox" ng-model="agreement.term6"> Some term6 goes here
        </label>
    </div>

</div>

我承认我理解以下内容:

这里有一些术语1 这里有一些术语2 不是信用交易。 这里有一些术语3 这里有一些术语 这里有第五个术语 这里有第六条

然后我在下面有一个按钮,如下所示,我只需要在选中所有复选框时启用此按钮。请注意,此标记出现在动态加载的模式窗口中。我已经尝试了在这个url中发布的方法,做了一些基本的逻辑更改,使它能够根据我的需要工作->。当视图被动态加载时,它似乎不起作用,当观察者无法找到它时,它会在控制台中抛出错误

<div class="modal-footer">
<button type="button" class="btn btn-primary pull-left" data-dismiss="modal" ng-click="$close();">Confirm</button></div>

证实

由于您当前已进行了设置,该功能应能正常工作:

<button type="button" class="btn btn-primary pull-left" data-dismiss="modal" ng-click="$close();" ng-if="agreement.term1 && agreement.term2 && agreement.term3 && agreement.term4 && agreement.term5 && agreement.term6">Confirm</button>
确认
使用时,仅当所有6个条件均为真时才会显示该按钮

我个人使用的另一种选择是附加组件。使用此选项,可以将所有复选框添加到单个阵列模型中,然后只需按如下方式检查长度:

为每个复选框指定模型:

<div class="checkbox" >
        <label>
          <input type="checkbox" checklist-model="agreement" checklist-value="true"> Some term1 goes here
        </label>
    </div>

// Repeat for all checkboxes



<button type="button" class="btn btn-primary pull-left" data-dismiss="modal" ng-click="$close();" ng-if="agreement.length === 6">Confirm</button>

这里有一些术语1
//对所有复选框重复此操作
证实

正如Paul指出的,如果您想禁用按钮而不是完全隐藏它,您也可以使用
ng disabled=“agreement.length<6”
而不是ng。

由于您目前已经设置了按钮,这应该可以:

<button type="button" class="btn btn-primary pull-left" data-dismiss="modal" ng-click="$close();" ng-if="agreement.term1 && agreement.term2 && agreement.term3 && agreement.term4 && agreement.term5 && agreement.term6">Confirm</button>
确认
使用时,仅当所有6个条件均为真时才会显示该按钮

我个人使用的另一种选择是附加组件。使用此选项,可以将所有复选框添加到单个阵列模型中,然后只需按如下方式检查长度:

为每个复选框指定模型:

<div class="checkbox" >
        <label>
          <input type="checkbox" checklist-model="agreement" checklist-value="true"> Some term1 goes here
        </label>
    </div>

// Repeat for all checkboxes



<button type="button" class="btn btn-primary pull-left" data-dismiss="modal" ng-click="$close();" ng-if="agreement.length === 6">Confirm</button>

这里有一些术语1
//对所有复选框重复此操作
证实

正如Paul指出的,如果您想禁用按钮而不是完全隐藏它,您也可以使用
ng disabled=“agreement.length<6”
而不是ng。

由于您目前已经设置了按钮,这应该可以:

<button type="button" class="btn btn-primary pull-left" data-dismiss="modal" ng-click="$close();" ng-if="agreement.term1 && agreement.term2 && agreement.term3 && agreement.term4 && agreement.term5 && agreement.term6">Confirm</button>
确认
使用时,仅当所有6个条件均为真时才会显示该按钮

我个人使用的另一种选择是附加组件。使用此选项,可以将所有复选框添加到单个阵列模型中,然后只需按如下方式检查长度:

为每个复选框指定模型:

<div class="checkbox" >
        <label>
          <input type="checkbox" checklist-model="agreement" checklist-value="true"> Some term1 goes here
        </label>
    </div>

// Repeat for all checkboxes



<button type="button" class="btn btn-primary pull-left" data-dismiss="modal" ng-click="$close();" ng-if="agreement.length === 6">Confirm</button>

这里有一些术语1
//对所有复选框重复此操作
证实

正如Paul指出的,如果您想禁用按钮而不是完全隐藏它,您也可以使用
ng disabled=“agreement.length<6”
而不是ng。

由于您目前已经设置了按钮,这应该可以:

<button type="button" class="btn btn-primary pull-left" data-dismiss="modal" ng-click="$close();" ng-if="agreement.term1 && agreement.term2 && agreement.term3 && agreement.term4 && agreement.term5 && agreement.term6">Confirm</button>
确认
使用时,仅当所有6个条件均为真时才会显示该按钮

我个人使用的另一种选择是附加组件。使用此选项,可以将所有复选框添加到单个阵列模型中,然后只需按如下方式检查长度:

为每个复选框指定模型:

<div class="checkbox" >
        <label>
          <input type="checkbox" checklist-model="agreement" checklist-value="true"> Some term1 goes here
        </label>
    </div>

// Repeat for all checkboxes



<button type="button" class="btn btn-primary pull-left" data-dismiss="modal" ng-click="$close();" ng-if="agreement.length === 6">Confirm</button>

这里有一些术语1
//对所有复选框重复此操作
证实

正如Paul指出的,如果您想禁用按钮而不是完全隐藏按钮,也可以使用
ng disabled=“agreement.length<6”
而不是ng。

在您的作用域中添加如下功能:

$scope.submitDisabled = function() {
   var allChecked = $scope.agreement.term1 && $scope.agreement.term2 &&
                    $scope.agreement.term3 && $scope.agreement.term4 &&
                    $scope.agreement.term5 && $scope.agreement.term6;
   return !allChecked;
}
然后,请按按钮执行以下操作:

<button type="button" ... ng-disabled="submitDisabled()">Confirm</button>
确认

这假设您希望按钮可见,但被禁用,而不是隐藏。

在您的作用域中添加如下功能:

$scope.submitDisabled = function() {
   var allChecked = $scope.agreement.term1 && $scope.agreement.term2 &&
                    $scope.agreement.term3 && $scope.agreement.term4 &&
                    $scope.agreement.term5 && $scope.agreement.term6;
   return !allChecked;
}
然后,请按按钮执行以下操作:

<button type="button" ... ng-disabled="submitDisabled()">Confirm</button>
确认

这假设您希望按钮可见,但被禁用,而不是隐藏。

在您的作用域中添加如下功能:

$scope.submitDisabled = function() {
   var allChecked = $scope.agreement.term1 && $scope.agreement.term2 &&
                    $scope.agreement.term3 && $scope.agreement.term4 &&
                    $scope.agreement.term5 && $scope.agreement.term6;
   return !allChecked;
}
然后,请按按钮执行以下操作:

<button type="button" ... ng-disabled="submitDisabled()">Confirm</button>
确认

这假设您希望按钮可见,但被禁用,而不是隐藏。

在您的作用域中添加如下功能:

$scope.submitDisabled = function() {
   var allChecked = $scope.agreement.term1 && $scope.agreement.term2 &&
                    $scope.agreement.term3 && $scope.agreement.term4 &&
                    $scope.agreement.term5 && $scope.agreement.term6;
   return !allChecked;
}
然后,请按按钮执行以下操作:

<button type="button" ... ng-disabled="submitDisabled()">Confirm</button>
确认

这假设您希望按钮可见,但禁用,而不是隐藏。

尝试了几种方法,但下面的方法对我有效。我没有使用watcher,而是在单击复选框周围的视图时调用函数

功能如下:

$scope.agreement.doIfChecked = doIfChecked; 
function doIfChecked(){
    $scope.agreement.isAnyUnchecked = !($scope.agreement.term1 && $scope.agreement.term2 && $scope.agreement.term3 && $scope.agreement.term4 && $scope.agreement.term5 && $scope.agreement.term6);  
}
我对输入框的父div使用了ng click指令,如下所示:

<div class="checkbox" ng-click='agreement.doIfChecked();'>
        <label>
          <input type="checkbox" ng-model="agreement.term1"> Some term1 goes here.
        </label>
    </div>
    <div class="checkbox" ng-click='agreement.doIfChecked();'>
        <label>
          <input type="checkbox" ng-model="agreement.term2"> Some term2 goes here.
        </label>
    </div>

这里有一些术语1。
这里有一些术语2。
按钮的标记如下所示,我使用的是ng disabled指令:

<div class="modal-footer">
<button type="button" class="btn btn-primary pull-left" data-dismiss="modal" ng-disabled="agreement.isAnyUnchecked" ng-click=" $close();">Confirm</button>

证实

尝试了几种方法,但下面的方法对我有效。我没有使用watcher,而是在单击复选框周围的视图时调用函数

功能如下:

$scope.agreement.doIfChecked = doIfChecked; 
function doIfChecked(){
    $scope.agreement.isAnyUnchecked = !($scope.agreement.term1 && $scope.agreement.term2 && $scope.agreement.term3 && $scope.agreement.term4 && $scope.agreement.term5 && $scope.agreement.term6);  
}
我对输入框的父div使用了ng click指令,如下所示:

<div class="checkbox" ng-click='agreement.doIfChecked();'>
        <label>
          <input type="checkbox" ng-model="agreement.term1"> Some term1 goes here.
        </label>
    </div>
    <div class="checkbox" ng-click='agreement.doIfChecked();'>
        <label>
          <input type="checkbox" ng-model="agreement.term2"> Some term2 goes here.
        </label>
    </div>

这里有一些术语1。
这里有一些术语2。
按钮的标记如下所示,我使用的是ng disabled指令:

<div class="modal-footer">
<button type="button" class="btn btn-primary pull-left" data-dismiss="modal" ng-disabled="agreement.isAnyUnchecked" ng-click=" $close();">Confirm</button>

证实

尝试了几种方法,但下面的方法对我有效。我没有使用watcher,而是在单击复选框周围的视图时调用函数

功能如下:

$scope.agreement.doIfChecked = doIfChecked; 
function doIfChecked(){
    $scope.agreement.isAnyUnchecked = !($scope.agreement.term1 && $scope.agreement.term2 && $scope.agreement.term3 && $scope.agreement.term4 && $scope.agreement.term5 && $scope.agreement.term6);  
}
我对输入框的父div使用了ng click指令,如下所示:

<div class="checkbox" ng-click='agreement.doIfChecked();'>
        <label>
          <input type="checkbox" ng-model="agreement.term1"> Some term1 goes here.
        </label>
    </div>
    <div class="checkbox" ng-click='agreement.doIfChecked();'>
        <label>
          <input type="checkbox" ng-model="agreement.term2"> Some term2 goes here.
        </label>
    </div>

这里有一些术语1。