AngularJS用户选择器指令实例分析


Posted in Javascript onNovember 04, 2016

本文实例分析了AngularJS用户选择器指令。分享给大家供大家参考,具体如下:

在开发表单时,我们需要使用经常需要使用到用户选择器,用户的数据一般使用如下方式存储:

用户1,用户2,用户3

我们可以使用angular指令实现选择器。

<!DOCTYPE html>
<html ng-app="app">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  <script src="../assets/js/angular.min.js"></script>
  <link rel="stylesheet" href="../assets/css/bootstrap.min.css">
  <link rel="stylesheet" href="../assets/css/bootstrap-theme.min.css">
  <link rel="stylesheet" href="../assets/css/component.css">
  <link rel="stylesheet" href="../assets/css/form.css">
  <link rel="stylesheet" href="../assets/css/font-awesome.min.css">
   <script src="../assets/js/angular.min.js"></script>
   <script type="text/javascript">
     var base=angular.module("directive",[]);
     base.directive('htSelector', function() {
      return {
        restrict : 'AE',
        templateUrl:'selector.html',
        scope: {
          name: '=name'
        },
        link: function(scope, element, attrs) {
          var aryName=scope.name.split(",");
          scope.names=aryName;
          scope.remove=function(i){
            aryName.splice(i,1);
          };
          scope.$watch(
              "names",
              function (newValue,oldValue) {
                if(newValue!=oldValue){
                  scope.name=aryName.join(",");
                }
              },true
          );
          scope.selectUser=function(){
            aryName.length = 0;
            aryName.push("韩信");
          }
        }
      }
    });
    var app=angular.module("app",["directive"]);
    app.controller('ctrl', ['$scope',function($scope){
      $scope.names='自由港,马云,刘强东';
      $scope.getData=function(){
        console.info($scope.names)
      }
    }])
   </script>
</head>
<body ng-controller="ctrl">
  <div ht-selector name="names"></div>
  <button ng-click="getData()">获取数据</button>
</body>
</html>

模版URL

<div>
  <span ng-repeat="item in names">
       {{item}}<a class="btn btn-xs fa-remove" title="移除该项" ng-click="remove($index)"></a>
  </span>
  <a class="btn btn-sm btn-primary fa-search" ng-click="selectUser()">选择</a>
</div>

在指令中,使用了独立的scope,传入的数据为使用逗号分割的字符串,我们使用了数组进行操作。

这里的技巧是在字符串和数组之间进行转换。

这里使用了指令独立的scope,使用了watch 对数组进行操作,需要注意的是如果监控数组,需要使用深度监控。

希望本文所述对大家AngularJS程序设计有所帮助。

Javascript 相关文章推荐
JSON扫盲帖 JSON.as类教程
Feb 16 Javascript
js checkbox(复选框) 使用集锦
Apr 28 Javascript
JavaScript 权威指南(第四版) 读书笔记
Aug 11 Javascript
javascript感应鼠标图片透明度显示的方法
Feb 24 Javascript
[原创]jQuery常用的4种加载方式分析
Jul 25 Javascript
Javascript将JSON日期格式化
Aug 23 Javascript
jQuery实现链接的title快速出现的方法
Feb 20 Javascript
Angular中的interceptors拦截器
Jun 25 Javascript
JS笛卡尔积算法与多重数组笛卡尔积实现方法示例
Dec 01 Javascript
vue实现自定义日期组件功能的实例代码
Nov 06 Javascript
使用vue实现多规格选择实例(SKU)
Aug 23 Javascript
解决Echarts 显示隐藏后宽度高度变小的问题
Jul 19 Javascript
AngularJS实现动态编译添加到dom中的方法
Nov 04 #Javascript
前端实现文件的断点续传(前端文件提交+后端PHP文件接收)
Nov 04 #Javascript
AngularJS中watch监听用法分析
Nov 04 #Javascript
AngularJS中的DOM操作用法分析
Nov 04 #Javascript
JS对大量数据进行多重过滤的方法
Nov 04 #Javascript
AngularJS模板加载用法详解
Nov 04 #Javascript
jQuery 遍历map()方法详解
Nov 04 #Javascript
You might like
不用iconv库的gb2312与utf-8的互换函数
2006/10/09 PHP
PHP 多进程 解决难题
2009/06/22 PHP
php foreach循环中使用引用的问题
2013/11/06 PHP
php集成套件服务器xampp安装使用教程(适合第一次玩PHP的新手)
2015/06/03 PHP
PHP设计模式之注册树模式分析
2018/01/26 PHP
一组JS创建和操作表格的函数集合
2009/05/07 Javascript
jQuery实现表单input中提示文字value随鼠标焦点移进移出而显示或隐藏的代码
2010/03/21 Javascript
javascript中typeof操作符和constucor属性检测
2015/02/26 Javascript
javascript实现对表格元素进行排序操作
2015/11/18 Javascript
使用Promise解决多层异步调用的简单学习心得
2016/05/17 Javascript
vue多级多选菜单组件开发
2020/09/08 Javascript
详解使用element-ui table组件的筛选功能的一个小坑
2018/11/02 Javascript
微信小程序合法域名配置方法
2019/05/06 Javascript
JavaScript 继承 封装 多态实现及原理详解
2019/07/29 Javascript
javascript单张多张图无缝滚动实例代码
2020/05/10 Javascript
浅谈Vue开发人员的7个最好的VSCode扩展
2021/01/20 Vue.js
python3使用urllib模块制作网络爬虫
2016/04/08 Python
Python的Django REST框架中的序列化及请求和返回
2016/04/11 Python
selenium使用chrome浏览器测试(附chromedriver与chrome的对应关系表)
2018/11/29 Python
vscode 配置 python3开发环境的方法
2019/09/19 Python
python编写计算器功能
2019/10/25 Python
Pycharm 2020年最新激活码(亲测有效)
2020/09/18 Python
python绘制汉诺塔
2021/03/01 Python
html5 Canvas画图教程(4)—未闭合的路径及渐变色的填充方法
2013/01/09 HTML / CSS
HTML5录音实践总结(Preact)
2020/05/07 HTML / CSS
HTML5在手机端实现视频全屏展示方法
2020/11/23 HTML / CSS
Paradigit比利时电脑卖场:购买笔记本、电脑、平板和外围设备
2016/11/28 全球购物
英语简历自我评价
2014/01/26 职场文书
省级优秀班集体申报材料
2014/05/25 职场文书
车间安全生产标语
2014/06/06 职场文书
声乐专业大学生职业生涯规划书:理想的未来需要自己去打造
2014/09/20 职场文书
人事文员岗位职责
2015/02/04 职场文书
高三数学复习备考教学反思
2016/02/18 职场文书
php微信小程序解包过程实例详解
2021/03/31 PHP
浅谈Redis 中的过期删除策略和内存淘汰机制
2022/04/03 Redis
使用CSS实现按钮边缘跑马灯动画
2023/05/07 HTML / CSS