使用submit-AngularJS取消选中复选框

使用submit-AngularJS取消选中复选框,angularjs,checkbox,Angularjs,Checkbox,我正在尝试取消选中带有提交按钮的复选框。这个想法是当复选框被选中时,按钮被显示,当按钮被点击时,复选框被取消选中,按钮被隐藏 HTML页面: <html ng-app="myApp" ng-controller="myCtrl"> <head> <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.min.js"></script> <sc

我正在尝试取消选中带有提交按钮的复选框。这个想法是当复选框被选中时,按钮被显示,当按钮被点击时,复选框被取消选中,按钮被隐藏

HTML页面:

<html ng-app="myApp" ng-controller="myCtrl">
<head>
  <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.min.js"></script>
  <script src="script.js"></script>
  <meta charset=utf-8 />
</head>

<body>
  <div ng-repeat="foo in boxes">
    <div>
      <input type="checkbox" name="cb" id="cb" ng-model="show" />{{foo}}
    </div>
    <div ng-show="show">
      <form ng-submit="submit()">
        <input type="submit" name="sumbit" id="sumbit" value="Hide" />
      </form>
    </div>
  </div>
</body>
</html>
在Plukner上:


谢谢你的帮助

您需要更改html代码并将其简化为

使用简单的
ng点击

<div ng-show="show">
    <input type="submit" value="Hide" ng-click="show = !show" />
</div>

您需要更改html代码并将其简化为

使用简单的
ng点击

<div ng-show="show">
    <input type="submit" value="Hide" ng-click="show = !show" />
</div>

您需要更改html代码并将其简化为

使用简单的
ng点击

<div ng-show="show">
    <input type="submit" value="Hide" ng-click="show = !show" />
</div>

您需要更改html代码并将其简化为

使用简单的
ng点击

<div ng-show="show">
    <input type="submit" value="Hide" ng-click="show = !show" />
</div>

问题在于,您使用单个变量来存储3个项目的状态,而Angular在
ng repeat
迭代中为每个上下文创建了一个范围。通过将
show
更改为数组,并使用
$index
引用每个数组,主作用域中的
show
数组将传递给所有三个子作用域,并且没有冲突,因此它可以工作:

app.controller('myCtrl', function($scope) {
  $scope.boxes = ['a','b','c'];
  $scope.show = [];
  $scope.submit = function(){
    $scope.show = [];
  }
});
HTML


{{foo}}
请看这里:

(请注意,如果这正是您想要的,那么请确定,因为这是毫无疑问的,但足以让您开始)


更新


这是一个版本,其中Hide unchecks only“its-own”复选框(
$scope.submit
现在接受index参数):

问题是,您使用单个变量存储3个项目的状态,而Angular在
ng repeat
迭代中为每个上下文创建了一个范围。通过将
show
更改为数组,并使用
$index
引用每个数组,主作用域中的
show
数组将传递给所有三个子作用域,并且没有冲突,因此它可以工作:

app.controller('myCtrl', function($scope) {
  $scope.boxes = ['a','b','c'];
  $scope.show = [];
  $scope.submit = function(){
    $scope.show = [];
  }
});
HTML


{{foo}}
请看这里:

(请注意,如果这正是您想要的,那么请确定,因为这是毫无疑问的,但足以让您开始)


更新


这是一个版本,其中Hide unchecks only“its-own”复选框(
$scope.submit
现在接受index参数):

问题是,您使用单个变量存储3个项目的状态,而Angular在
ng repeat
迭代中为每个上下文创建了一个范围。通过将
show
更改为数组,并使用
$index
引用每个数组,主作用域中的
show
数组将传递给所有三个子作用域,并且没有冲突,因此它可以工作:

app.controller('myCtrl', function($scope) {
  $scope.boxes = ['a','b','c'];
  $scope.show = [];
  $scope.submit = function(){
    $scope.show = [];
  }
});
HTML


{{foo}}
请看这里:

(请注意,如果这正是您想要的,那么请确定,因为这是毫无疑问的,但足以让您开始)


更新


这是一个版本,其中Hide unchecks only“its-own”复选框(
$scope.submit
现在接受index参数):

问题是,您使用单个变量存储3个项目的状态,而Angular在
ng repeat
迭代中为每个上下文创建了一个范围。通过将
show
更改为数组,并使用
$index
引用每个数组,主作用域中的
show
数组将传递给所有三个子作用域,并且没有冲突,因此它可以工作:

app.controller('myCtrl', function($scope) {
  $scope.boxes = ['a','b','c'];
  $scope.show = [];
  $scope.submit = function(){
    $scope.show = [];
  }
});
HTML


{{foo}}
请看这里:

(请注意,如果这正是您想要的,那么请确定,因为这是毫无疑问的,但足以让您开始)


更新



下面是一个版本,其中Hide unchecks only“its-own”复选框(
$scope.submit
现在接受索引参数):

您的问题是什么?你能解释一下你在哪里遇到了问题吗?你有错误吗?有什么事情发生吗?如何用提交按钮取消选中复选框?我在submit函数中将show设置为false,但ng model无法识别show为false以取消选中复选框。我走的是正确的道路,还是以另一种方式运作?你的问题是什么?你能解释一下你在哪里遇到了问题吗?你有错误吗?有什么事情发生吗?如何用提交按钮取消选中复选框?我在submit函数中将show设置为false,但ng model无法识别show为false以取消选中复选框。我走的是正确的道路,还是以另一种方式运作?你的问题是什么?你能解释一下你在哪里遇到了问题吗?你有错误吗?有什么事情发生吗?如何用提交按钮取消选中复选框?我在submit函数中将show设置为false,但ng model无法识别show为false以取消选中复选框。我走的是正确的道路,还是以另一种方式运作?你的问题是什么?你能解释一下你在哪里遇到了问题吗?你有错误吗?有什么事情发生吗?如何用提交按钮取消选中复选框?我在submit函数中将show设置为false,但ng model无法识别show为false以取消选中复选框。我是走对了路,还是以其他方式运作?是的,这正是我想要的。我用那种方式思考问题,但我没有找到解决办法。非常感谢。不客气!是的,它可能不喜欢这样一个事实,你有3个模型,双重绑定到一个变量。另外,你在页面上有重复的ID,确保你也修复了它。是的,这是主要问题。我会解决的。是的,这正是我想要的。我用那种方式思考问题,但我没有找到解决办法。非常感谢。不客气!是的,它可能不喜欢这样一个事实,你有3个模型,双重绑定到一个变量。另外,你在页面上有重复的ID,确保你也修复了它。是的,这是主要问题。我来修理它