深究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 相关文章推荐
Firebug 字幕文件JSON地址获取代码
Oct 28 Javascript
使用jQuery实现图片遮罩半透明坠落遮挡
Mar 16 Javascript
深入讲解AngularJS中的自定义指令的使用
Jun 18 Javascript
AngularJS 简单应用实例
Jul 28 Javascript
微信小程序 使用canvas制作K线实例详解
Jan 12 Javascript
微信小程序 侧滑删除(左滑删除)
May 23 Javascript
Vue下拉框回显并默认选中随机问题
Sep 06 Javascript
javascript实现5秒倒计时并跳转功能
Jun 20 Javascript
echarts 使用formatter 修改鼠标悬浮事件信息操作
Jul 20 Javascript
vue tab滚动到一定高度,固定在顶部,点击tab切换不同的内容操作
Jul 22 Javascript
vue+elementUI实现简单日历功能
Sep 24 Javascript
解决vue watch数据的方法被调用了两次的问题
Nov 07 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 date()日期时间函数详解
2010/05/16 PHP
PHP连接SQLServer2005 的问题解决方法
2010/07/19 PHP
php 文件上传类代码
2011/08/06 PHP
php实现模拟登陆方正教务系统抓取课表
2015/05/19 PHP
PHP接收App端发送文件流的方法
2016/09/23 PHP
php array_keys 返回数组的键名
2016/10/25 PHP
Laravel框架控制器的request与response用法示例
2019/09/30 PHP
PHP7 弃用功能
2021/03/09 PHP
Javascript实例教程(19) 使用HoTMetal(3)
2006/12/23 Javascript
IE之动态添加DOM节点触发window.resize事件
2010/07/27 Javascript
原生js实现给指定元素的后面追加内容
2013/04/10 Javascript
jqplot通过ajax动态画折线图的方法及思路
2013/12/08 Javascript
BootStrap的JS插件之轮播效果案例详解
2016/05/16 Javascript
Bootstrap导航条可点击和鼠标悬停显示下拉菜单的实现代码
2016/06/23 Javascript
jQuery实现的表头固定效果实例【附完整demo源码下载】
2016/08/01 Javascript
Vue.use源码学习小结
2018/06/20 Javascript
Bootstrap Table 双击、单击行获取该行及全表内容
2018/08/31 Javascript
Vue中 v-if/v-show/插值表达式导致闪现的原因及解决办法
2018/10/12 Javascript
VUE中使用HTTP库Axios方法详解
2020/02/05 Javascript
python中Genarator函数用法分析
2015/04/08 Python
python爬虫实现教程转换成 PDF 电子书
2017/02/19 Python
python3+PyQt5自定义视图详解
2018/04/24 Python
Python2 Selenium元素定位的实现(8种)
2019/02/25 Python
几个适合python初学者的简单小程序,看完受益匪浅!(推荐)
2019/04/16 Python
Pycharm+Python+PyQt5使用详解
2019/09/25 Python
Pytorch基本变量类型FloatTensor与Variable用法
2020/01/08 Python
Python利用Scrapy框架爬取豆瓣电影示例
2020/01/17 Python
python 监控logcat关键字功能
2020/09/04 Python
python 多线程共享全局变量的优劣
2020/09/24 Python
澳大利亚巧克力花束和礼品网站:Tastebuds
2019/03/15 全球购物
写给学生的新学期寄语
2014/01/18 职场文书
学习经验演讲稿
2014/05/10 职场文书
我们的节日元宵活动方案
2014/08/23 职场文书
社区领导班子四风问题原因分析及整改措施
2014/09/28 职场文书
考试作弊检讨
2015/01/27 职场文书
教你使用VS Code的MySQL扩展管理数据库的方法
2022/01/22 MySQL