深究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 相关文章推荐
JavaScript获取当前日期是星期几的方法
Apr 06 Javascript
实例代码讲解jquery easyui动态tab页
Nov 17 Javascript
jQuery ajaxSubmit 实现ajax提交表单局部刷新
Jul 04 Javascript
Bootstrap栅格系统学习笔记
Nov 25 Javascript
原生javascript实现图片放大镜效果
Jan 18 Javascript
jQuery基于ajax方式实现用户名存在性检查功能示例
Feb 10 Javascript
Vue.js学习记录之在元素与template中使用v-if指令实例
Jun 27 Javascript
通过fastclick源码分析彻底解决tap“点透”
Dec 24 Javascript
Vue导出页面为PDF格式的实现思路
Jul 31 Javascript
javascript实现手动点赞效果
Apr 09 Javascript
Servlet返回的数据js解析2种方法
Dec 12 Javascript
JS实现小星星特效
Dec 24 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
php过滤危险html代码
2008/08/18 PHP
PHP中的错误处理、异常处理机制分析
2012/05/07 PHP
探讨Hessian在PHP中的使用分析
2013/06/13 PHP
Codeigniter生成Excel文档的简单方法
2014/06/12 PHP
phpcms配置列表页以及获得文章发布时间
2017/07/04 PHP
浅析showModalDialog数据缓存问题(用禁止浏览器缓存解决)
2013/07/09 Javascript
用javascript删除当前行,添加行(示例代码)
2013/11/25 Javascript
jquery事件的ready()方法使用详解
2015/11/11 Javascript
javascript类型系统 Window对象学习笔记
2016/01/07 Javascript
webpack中引用jquery的简单实现
2016/06/08 Javascript
详解vue 中使用 AJAX获取数据的方法
2017/01/18 Javascript
VueJs组件prop验证简单介绍
2017/09/12 Javascript
基于jQuery选择器之表单对象属性筛选选择器的实例
2017/09/19 jQuery
Vue父组件调用子组件事件方法
2018/02/23 Javascript
JavaScript递归函数解“汉诺塔”算法代码解析
2018/07/05 Javascript
原生JS实现旋转轮播图+文字内容切换效果【附源码】
2018/09/29 Javascript
微信小程序 授权登录详解(附完整源码)
2019/08/23 Javascript
layui在form表单页面通过Validform加入简单验证的方法
2019/09/06 Javascript
vue实现前端列表多条件筛选
2020/10/26 Javascript
[04:01]2014DOTA2国际邀请赛 TITAN告别Ohaiyo期望明年再战
2014/07/15 DOTA
[57:18]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#3VP VS VG
2016/03/03 DOTA
python编程-将Python程序转化为可执行程序[整理]
2007/04/09 Python
用Python编写一个简单的Lisp解释器的教程
2015/04/03 Python
PyMongo安装使用笔记
2015/04/27 Python
python实现感知器算法详解
2017/12/19 Python
运用TensorFlow进行简单实现线性回归、梯度下降示例
2018/03/05 Python
Python生成任意范围任意精度的随机数方法
2018/04/09 Python
pandas.DataFrame.to_json按行转json的方法
2018/06/05 Python
HTML5中使用postMessage实现Ajax跨域请求的方法
2016/04/19 HTML / CSS
html5 canvas里绘制椭圆并保持线条粗细均匀的技巧
2013/03/25 HTML / CSS
HTML5新增加的功能详解
2016/09/05 HTML / CSS
内业资料员岗位职责
2014/01/04 职场文书
先进班组事迹材料
2014/12/25 职场文书
2015年世界卫生日活动总结
2015/02/09 职场文书
外科护士长工作总结
2015/08/12 职场文书
python pyhs2 的安装操作
2021/04/07 Python