深究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 相关文章推荐
你需要知道的JavsScript可以做什么?
Jun 29 Javascript
JS 退出系统并跳转到登录界面的实现代码
Jun 29 Javascript
Js base64 加密解密介绍
Oct 11 Javascript
jQuery表格插件ParamQuery简单使用方法示例
Dec 05 Javascript
JS中判断null、undefined与NaN的方法
Mar 24 Javascript
jQuery+HTML5美女瀑布流布局实现方法
Sep 21 Javascript
JSON+Jquery省市区三级联动
Jan 13 Javascript
jquery 正整数数字校验正则表达式
Jan 10 Javascript
Fetch超时设置与终止请求详解
May 18 Javascript
关于ligerui子页面关闭后,父页面刷新,重新加载的方法
Sep 27 Javascript
详解Vue3中对VDOM的改进
Apr 23 Javascript
Vuex的热更替如何实现
Jun 05 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
常用表单验证类,有了这个,一般的验证就都齐了。
2006/12/06 PHP
php checkbox复选框值的获取与checkbox默认值输出方法
2010/05/15 PHP
关于jQuery object and DOM element
2013/04/15 Javascript
JavaScript使用指针操作实现约瑟夫问题实例
2015/04/07 Javascript
js 打开新页面在屏幕中间的实现方法
2016/11/02 Javascript
jquery.Jcrop结合JAVA后台实现图片裁剪上传实例
2016/11/05 Javascript
vue webpack实用技巧总结
2018/04/24 Javascript
通过实例了解js函数中参数的传递
2019/06/15 Javascript
Vue 同步异步存值取值实现案例
2020/08/05 Javascript
[01:08]DOTA2“血战之命”预告片
2017/08/12 DOTA
基于Django的python验证码(实例讲解)
2017/10/23 Python
Python通过OpenCV的findContours获取轮廓并切割实例
2018/01/05 Python
python 实现判断ip连通性的方法总结
2018/04/22 Python
Python实现迭代时使用索引的方法示例
2018/06/05 Python
对python 通过ssh访问数据库的实例详解
2019/02/19 Python
详解python函数的闭包问题(内部函数与外部函数详述)
2019/05/17 Python
使用pandas读取文件的实现
2019/07/31 Python
django基于cors解决跨域请求问题详解
2019/08/06 Python
与Django结合利用模型对上传图片预测的实例详解
2019/08/07 Python
Tensorflow 自定义loss的情况下初始化部分变量方式
2020/01/06 Python
Python通过2种方法输出带颜色字体
2020/03/02 Python
python shapely.geometry.polygon任意两个四边形的IOU计算实例
2020/04/12 Python
python实现文法左递归的消除方法
2020/05/22 Python
Pandas读取csv时如何设置列名
2020/06/02 Python
Python如何输出整数
2020/06/07 Python
python cv2.resize函数high和width注意事项说明
2020/07/05 Python
Python利用imshow制作自定义渐变填充柱状图(colorbar)
2020/12/10 Python
世界上最大的汽车共享网站:Zipcar
2017/01/14 全球购物
一年级班主任感言
2014/03/08 职场文书
泰山导游词
2015/02/02 职场文书
大学生毕业个人总结
2015/02/15 职场文书
初中班主任心得体会
2016/01/07 职场文书
《地震中的父与子》教学反思
2016/02/16 职场文书
MySQL中distinct与group by之间的性能进行比较
2021/05/26 MySQL
MySQL 发生同步延迟时Seconds_Behind_Master还为0的原因
2021/06/21 MySQL
nginx代理实现静态资源访问的示例代码
2022/07/07 Servers