深究AngularJS——ng-checked(回写:带真实案例代码)


Posted in Javascript onJune 13, 2017

1.需求

在添加页面实现一个checkbox的选择,然后在详情页面展示时,会自动选上之前被选中的。

2.添加页面

看官最好将这个代码复制过去看看效果。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script>
</head>
<body>
<div ng-app="myApp" ng-controller="myCtrl" >
  选择
  <div ng-repeat="item in list">
    <input type="checkbox" name="tagName" value="item.id" ng-click="select(item.id,$event)"> {{item.shortName}}
  </div>
  结果:{{result}}
</div>
<script>  
  var app = angular.module('myApp', []);
  app.controller('myCtrl', function($scope) {
    //创建checkbox用的
    $scope.list=[{"id":1,"shortName":"张三"},{"id":2,"shortName":"李四"},{"id":3,"shortName":"王二"}];
    //存储已选
    $scope.result = [];
    //触发事件
    $scope.select = function(id,event){      
      console.log(event)//打印看看这是什么,有利于理解
      console.log(action)

      var action = event.target;
      if(action.checked){//选中,就添加
        if($scope.result.indexOf(id) == -1){//不存在就添加
          $scope.result.push(id);
        }
      }else{//去除就删除result里
        var idx = $scope.result.indexOf(id);
        if( idx != -1){//不存在就添加
          $scope.result.splice(idx,1);
        }
      }
    };
  });
</script>
</body>
</html>

3.详情展示

//假设添加页面的结果是:$scope.result = [3,2];

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script>
</head>
<body>

<div ng-app="myApp" ng-controller="myCtrl" >
  回写时设置不可选,即设ng-disabled="true"
  <div ng-repeat="item in list">
    <input type="checkbox" name="tagName" ng-checked="isSelected(item.id)" value="item.id" ng-disabled="true" > {{item.shortName}}
  </div>
  结果:{{result}}
</div>

<script>  
  var app = angular.module('myApp', []);
  app.controller('myCtrl', function($scope) {
    //创建checkbox用的
    $scope.list=[{"id":1,"shortName":"张三"},{"id":2,"shortName":"李四"},{"id":3,"shortName":"王二"}];

    //在添加页面得到的结果
    //你会发现,顺序也不会影响结果
    $scope.result = [3,2];

    //被选中条件:ng-checked的结果为true
    $scope.isSelected = function(id){     
      return $scope.result.indexOf(id)!=-1; 
      //只要返回的结果为true,则对应的checkbox就会被选中,
      //所以我的思路是看存添加页面的结果里是否含有当前id即value值,
      //有就返回的true,没有就返回false
    };
  });
</script>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
基于JQuery的Pager分页器实现代码
Jul 17 Javascript
JS 实现Json查询的方法实例
Apr 12 Javascript
Javascript中克隆一个数组的实现代码
Dec 06 Javascript
jQuery实现的多选框多级联动插件
May 02 Javascript
JS原型、原型链深入理解
Feb 27 Javascript
Node.js中路径处理模块path详解
Nov 14 Javascript
canvas 绘制圆形时钟
Feb 22 Javascript
node.js中debug模块的简单介绍与使用
Apr 25 Javascript
vue项目webpack中Npm传递参数配置不同域名接口
Jun 15 Javascript
iSlider手机端图片滑动切换插件使用详解
Dec 24 Javascript
jQuery操作选中select下拉框的值代码实例
Feb 07 jQuery
JavaScript中CreateTextFile函数
Aug 30 Javascript
详解vue项目优化之按需加载组件-使用webpack require.ensure
Jun 13 #Javascript
javascript checkbox/radio onchange不能兼容ie8处理办法
Jun 13 #Javascript
angularjs之$timeout指令详解
Jun 13 #Javascript
JS实现json的序列化和反序列化功能示例
Jun 13 #Javascript
angularjs实现搜索的关键字在正文中高亮出来
Jun 13 #Javascript
angular-ngSanitize模块-$sanitize服务详解
Jun 13 #Javascript
让微信小程序支持ES6中Promise特性的方法详解
Jun 13 #Javascript
You might like
攻克CakePHP系列一 连接MySQL数据库
2008/10/22 PHP
ZF框架实现发送邮件的方法
2015/12/03 PHP
yii2-GridView在开发中常用的功能及技巧总结
2017/01/07 PHP
js 跨域和ajax 跨域问题小结
2009/07/01 Javascript
javascript中验证大写字母、数字和中文
2014/01/15 Javascript
javascript异步编程代码书写规范Promise学习笔记
2015/02/11 Javascript
在JavaScript的jQuery库中操作AJAX的方法讲解
2015/08/15 Javascript
js实现超酷的照片墙展示效果图附源码下载
2015/10/08 Javascript
JavaScript中函数表达式和函数声明及函数声明与函数表达式的不同
2015/11/15 Javascript
浅析BootStrap栅格系统
2016/06/07 Javascript
Extjs 点击复选框在表格中增加相关信息行
2016/07/12 Javascript
jquery——九宫格大转盘抽奖实例
2017/01/16 Javascript
JS验证字符串功能
2017/02/22 Javascript
ES6实现的遍历目录函数示例
2017/04/07 Javascript
javascript 封装Date日期类实例详解
2017/05/28 Javascript
基于JS递归函数细化认识及实用实例(推荐)
2017/08/07 Javascript
vue-cli + sass 的正确打开方式图文详解
2017/10/27 Javascript
微信小程序图片轮播组件gallery slider使用方法详解
2018/01/31 Javascript
vue iview组件表格 render函数的使用方法详解
2018/03/15 Javascript
angular的输入和输出的使用方法
2018/09/22 Javascript
详解vue为什么要求组件模板只能有一个根元素
2019/07/22 Javascript
[02:40]DOTA2英雄基础教程 先知
2013/11/29 DOTA
Python求两个文本文件以行为单位的交集、并集与差集的方法
2015/06/17 Python
pyqt5 实现在别的窗口弹出进度条
2019/06/18 Python
Python Numpy 实现交换两行和两列的方法
2019/06/26 Python
Django 中自定义 Admin 样式与功能的实现方法
2019/07/04 Python
python+logging+yaml实现日志分割
2019/07/22 Python
Python的Lambda函数用法详解
2019/09/03 Python
根据tensor的名字获取变量的值方式
2020/01/04 Python
Python 在函数上添加包装器
2020/07/28 Python
利用python 下载bilibili视频
2020/11/13 Python
Python基于argparse与ConfigParser库进行入参解析与ini parser
2021/02/02 Python
请假条怎么写
2014/04/10 职场文书
买房子个人收入证明
2014/10/12 职场文书
2014年银行客户经理工作总结
2014/11/12 职场文书
2016年全国爱牙日宣传活动总结
2016/04/05 职场文书