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 相关文章推荐
Ajax,UTF-8还是GB2312 eval 还是execScript
Nov 13 Javascript
javascript和HTML5利用canvas构建猜牌游戏实现算法
Jul 17 Javascript
javascript中定义类的方法详解
Feb 10 Javascript
javascript实现input file上传图片预览效果
Dec 31 Javascript
Javascript HTML5 Canvas实现的一个画板
Apr 12 Javascript
iOS和Android用同一个二维码实现跳转下载链接的方法
Sep 28 Javascript
详解webpack中的hash、chunkhash、contenthash区别
Jan 05 Javascript
使用Sonarqube扫描Javascript代码的示例
Dec 26 Javascript
通过npm或yarn自动生成vue组件的方法示例
Feb 12 Javascript
学习node.js 断言的使用详解
Mar 18 Javascript
微信小程序封装自定义弹窗的实现代码
May 08 Javascript
pm2启动ssr失败的解决方法
Jun 29 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你的验证码安全码?
2007/01/02 PHP
php中的数组操作函数整理
2008/08/18 PHP
PHP中文件读、写、删的操作(PHP中对文件和目录操作)
2012/03/06 PHP
Codeigniter实现智能裁剪图片的方法
2014/06/12 PHP
解密ThinkPHP3.1.2版本之独立分组功能应用
2014/06/19 PHP
php下载文件,添加响应头的简单实例
2016/09/22 PHP
php集成开发环境详解
2019/09/24 PHP
解决laravel查询构造器中的别名问题
2019/10/17 PHP
用js重建星际争霸
2006/12/22 Javascript
一个多次搜索+多次传值的解决方案
2007/01/20 Javascript
学习YUI.Ext 第三天
2007/03/10 Javascript
javascript实现的listview效果
2007/04/28 Javascript
jquery(live)中File input的change方法只起一次作用的解决办法
2011/10/21 Javascript
jQuery中用dom操作替代正则表达式
2014/12/29 Javascript
jQuery实现个性翻牌效果导航菜单的方法
2015/03/09 Javascript
js实现同一个页面多个渐变效果的方法
2015/04/10 Javascript
jQuery自定义滚动条完整实例
2016/01/08 Javascript
nodeJs爬虫获取数据简单实现代码
2016/03/29 NodeJs
js实现登录注册框手机号和验证码校验(前端部分)
2017/09/28 Javascript
JS+canvas画一个圆锥实例代码
2017/12/13 Javascript
Angularjs 根据一个select的值去设置另一个select的值方法
2018/08/13 Javascript
element-ui中的select下拉列表设置默认值方法
2018/08/24 Javascript
Vue结合后台导入导出Excel问题详解
2019/02/19 Javascript
使用python BeautifulSoup库抓取58手机维修信息
2013/11/21 Python
简介Python设计模式中的代理模式与模板方法模式编程
2016/02/02 Python
Python通过Manager方式实现多个无关联进程共享数据的实现
2019/11/07 Python
Python特殊属性property原理及使用方法解析
2020/10/09 Python
魅力教师事迹材料
2014/01/10 职场文书
电气自动化专业职业规划范文
2014/02/16 职场文书
刚毕业大学生自荐信范文
2014/02/20 职场文书
亮剑精神演讲稿
2014/05/23 职场文书
公司领导班子召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
公司员工离职感言
2015/08/03 职场文书
python-for x in range的用法(注意要点、细节)
2021/05/10 Python
使用pipenv管理python虚拟环境的全过程
2021/09/25 Python
MySQL 原理优化之Group By的优化技巧
2022/08/14 MySQL