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 相关文章推荐
JQuery 无废话系列教程(一) jquery入门 [推荐]
Jun 23 Javascript
window.location不跳转的问题解决方法
Apr 17 Javascript
基于jquery实现的图片在各种分辨率下未知的容器内上下左右居中
May 11 Javascript
TypeScript 中接口详解
Jun 19 Javascript
Javascript实现代码折叠功能
Aug 25 Javascript
js利用appendChild对标签进行排序的实现方法
Oct 16 Javascript
AngularJS 验证码60秒倒计时功能的实现
Jun 05 Javascript
Jquery中.bind()、.live()、.delegate()和.on()之间的区别详解
Aug 01 jQuery
jQuery读取本地的json文件(实例讲解)
Oct 31 jQuery
vue设计一个倒计时秒杀的组件详解
Apr 06 Javascript
详解Vue依赖收集引发的问题
Apr 22 Javascript
利用JS响应式修改vue实现页面的input值
Sep 02 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
《PHP边学边教》(02.Apache+PHP环境配置――下篇)
2006/12/13 PHP
PHP生成指定范围内的N个不重复的随机数
2019/03/18 PHP
PHP开发api接口安全验证操作实例详解
2020/03/26 PHP
Javascript 二维数组
2009/11/26 Javascript
jQuery+jqmodal弹出窗口实现代码分明
2010/06/14 Javascript
jQuery源码分析-02正则表达式 RegExp 常用正则表达式
2011/11/14 Javascript
jQuery ajax(复习)—Baidu ajax request分离版
2013/01/24 Javascript
Jquery时间验证和转换工具小例子
2013/07/01 Javascript
使用jquery实现放大镜效果
2014/09/02 Javascript
JavaScript组合拼接字符串的效率对比测试
2014/11/06 Javascript
JavaScript插件化开发教程 (三)
2015/01/27 Javascript
JavaScript中的Math.atan2()方法使用详解
2015/06/15 Javascript
解决jquery实现的radio重新选中的问题
2015/07/03 Javascript
JS判断日期格式是否合法的简单实例
2016/07/11 Javascript
jquery+CSS3实现3D拖拽相册效果
2016/07/18 Javascript
js中遍历Map对象的简单实例
2016/08/08 Javascript
浅谈ECMAScript6新特性之let、const
2017/08/02 Javascript
Vue 第三方字体图标引入 Font Awesome的方法
2018/09/28 Javascript
Vue实现远程获取路由与页面刷新导致404错误的解决
2019/01/31 Javascript
JavaScript Math对象和调试程序的方法分析
2019/05/13 Javascript
vue之debounce属性被移除及处理详解
2019/11/13 Javascript
Vue基本指令实例图文讲解
2021/02/25 Vue.js
python3学习之Splash的安装与实例教程
2018/07/09 Python
python爬虫之自制英汉字典
2019/06/24 Python
Python学习笔记之列表和成员运算符及列表相关方法详解
2019/08/22 Python
在python3中实现查找数组中最接近与某值的元素操作
2020/02/29 Python
使用Python文件读写,自定义分隔符(custom delimiter)
2020/07/05 Python
法国太阳镜店:Sunglasses Shop
2016/08/27 全球购物
英国最受信任的在线眼镜商之一:Fashion Eyewear
2019/10/31 全球购物
工程项目建议书范文
2014/03/12 职场文书
企业指导教师评语
2014/04/28 职场文书
感恩节寄语2015
2015/03/24 职场文书
物业工程部主管岗位职责
2015/04/16 职场文书
工作证明格式范文
2015/06/15 职场文书
Mysql 如何批量插入数据
2021/04/06 MySQL
Java 超详细讲解hashCode方法
2022/04/07 Java/Android