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 相关文章推荐
javascript IFrame 强制刷新代码
Jul 23 Javascript
jquery实现的元素的left增加N像素 鼠标移开会慢慢的移动到原来的位置
Mar 21 Javascript
javascript异步编程的4种方法
Feb 19 Javascript
JavaScript实现班级随机点名小应用需求的具体分析
May 12 Javascript
分享9点个人认为比较重要的javascript 编程技巧
Apr 27 Javascript
BootStrap智能表单实战系列(七)验证的支持
Jun 13 Javascript
jQuery实现的导航下拉菜单效果
Jul 04 Javascript
AngularJs表单校验功能实例代码
Feb 09 Javascript
基于VUE.JS的移动端框架Mint UI的使用
Oct 11 Javascript
JS实现获取毫秒值及转换成年月日时分秒的方法
Aug 15 Javascript
vue遍历生成的输入框 绑定及修改值示例
Oct 30 Javascript
js实现随机点名程序
Sep 17 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
第二节--PHP5 的对象模型
2006/11/16 PHP
smarty 缓存控制前的页面静态化原理
2013/03/15 PHP
PHP防止刷新重复提交页面的示例代码
2015/11/11 PHP
PHP魔术方法使用方法汇总
2016/02/14 PHP
浅谈htmlentities 、htmlspecialchars、addslashes的使用方法
2016/12/09 PHP
thinkPHP显示不出验证码的原因与解决方法分析
2017/05/20 PHP
jquery提升性能最佳实践小结
2010/12/06 Javascript
jQuery 源码分析笔记(7) Queue
2011/06/19 Javascript
javascript加号&quot;+&quot;的二义性说明
2013/03/04 Javascript
jquery中子元素和后代元素的区别示例介绍
2014/04/02 Javascript
JavaScript作用域链示例分享
2014/05/27 Javascript
js实现checkbox全选、不选与反选的方法
2015/02/09 Javascript
javascript数据结构之二叉搜索树实现方法
2015/11/25 Javascript
JS实现的在线调色板实例(附demo源码下载)
2016/03/01 Javascript
微信小程序 video详解及简单实例
2017/01/16 Javascript
详解vue数据渲染出现闪烁问题
2017/06/29 Javascript
React Native预设占位placeholder的使用
2017/09/28 Javascript
Angular入口组件(entry component)与声明式组件的区别详解
2018/04/09 Javascript
React学习笔记之高阶组件应用
2018/06/02 Javascript
浅谈HTTP 缓存的那些事儿
2018/10/17 Javascript
一篇文章带你搞懂Vue虚拟Dom与diff算法
2020/08/25 Javascript
解决js中的setInterval清空定时器不管用问题
2020/11/17 Javascript
Python通过解析网页实现看报程序的方法
2014/08/04 Python
python使用for循环计算0-100的整数的和方法
2019/02/01 Python
Python开发企业微信机器人每天定时发消息实例
2020/03/17 Python
django执行原始查询sql,并返回Dict字典例子
2020/04/01 Python
Python语言编写智力问答小游戏功能
2020/10/13 Python
python 从list中随机取值的方法
2020/11/16 Python
澳大利亚女性快速时尚零售商:Ally Fashion
2018/04/25 全球购物
音乐教学反思
2014/02/02 职场文书
质量提升方案
2014/06/16 职场文书
商务专员岗位职责范本
2014/06/29 职场文书
教师工作失职检讨书
2014/09/18 职场文书
教师自查自纠工作情况报告
2014/10/29 职场文书
2014年安全管理工作总结
2014/12/01 职场文书
幼儿园园长个人总结
2015/03/02 职场文书