深究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 相关文章推荐
硬盘浏览程序,保存成网页格式便可使用
Dec 03 Javascript
javascript 操作cookies及正确使用cookies的属性
Oct 15 Javascript
最佳JS代码编写的14条技巧
Jan 09 Javascript
使用jquery动态加载javascript以减少服务器压力
Oct 29 Javascript
学习使用bootstrap3栅格系统
Apr 12 Javascript
不使用script导入js文件的几种方法
Oct 27 Javascript
关于webuploader插件使用过程遇到的小问题
Nov 07 Javascript
详解webpack异步加载业务模块
Jun 23 Javascript
vue 弹窗时 监听手机返回键关闭弹窗功能(页面不跳转)
May 10 Javascript
用JS实现选项卡
Mar 23 Javascript
简单了解Vue computed属性及watch区别
Jul 10 Javascript
javascript canvas时钟模拟器
Jul 13 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
ThinkPHP使用smarty模板引擎的方法
2014/07/01 PHP
ThinkPHP惯例配置文件详解
2014/07/14 PHP
XHProf报告字段含义的解析
2016/05/17 PHP
php中strtotime函数性能分析
2016/11/20 PHP
php中file_get_contents()函数用法实例
2019/02/21 PHP
js两行代码按指定格式输出日期时间
2011/10/21 Javascript
JS获取html对象的几种方式介绍
2013/12/05 Javascript
javascript使用正则表达式实现去掉空格之后的字符
2015/02/15 Javascript
简介JavaScript中getUTCMonth()方法的使用
2015/06/10 Javascript
基于jQuery实现交互体验社会化分享代码附源码下载
2016/01/04 Javascript
javascript执行环境及作用域详解
2016/05/05 Javascript
微信小程序 使用canvas制作K线实例详解
2017/01/12 Javascript
[js高手之路]图解javascript的原型(prototype)对象,原型链实例
2017/08/28 Javascript
原生JS与jQuery编写简单选项卡
2017/10/30 jQuery
基于JS实现带动画效果的流程进度条
2018/06/01 Javascript
vue封装一个简单的div框选时间的组件的方法
2019/01/06 Javascript
使用layer模态框给新页面传值的方法
2019/09/27 Javascript
react antd表格中渲染一张或多张图片的实例
2020/10/28 Javascript
Python实现可获取网易页面所有文本信息的网易网络爬虫功能示例
2018/01/15 Python
python3.6利用pyinstall打包py为exe的操作实例
2018/10/31 Python
Python实例方法、类方法、静态方法的区别与作用详解
2019/03/25 Python
在Django下测试与调试REST API的方法详解
2019/08/29 Python
python多维数组分位数的求取方式
2020/03/03 Python
Python分析最近大火的网剧《隐秘的角落》
2020/07/02 Python
浅谈HTML5 FileReader分布读取文件以及其方法简介
2017/11/09 HTML / CSS
N.Peal官网:来自伦敦的高档羊绒品牌
2018/10/29 全球购物
教学大赛获奖感言
2014/01/15 职场文书
好家长事迹材料
2014/01/23 职场文书
大学生职业规划书的范本
2014/02/18 职场文书
房地产活动策划方案
2014/05/14 职场文书
心术观后感
2015/06/11 职场文书
投诉信回复范文
2015/07/03 职场文书
2016五一手机促销广告语
2016/01/28 职场文书
应届生个人的求职(自荐信范文2篇)
2019/08/23 职场文书
MySQL 8.0 之不可见列的基本操作
2021/05/20 MySQL
vue点击弹窗自动触发点击事件的解决办法(模拟场景)
2021/05/25 Vue.js