ANGULAR 开发用户选择器指令

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

用户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 对数组进行操作,需要注意的是如果监控数组,需要使用深度监控。

时间: 2024-10-12 01:40:05

ANGULAR 开发用户选择器指令的相关文章

Angular API 核心组件之 指令篇

1 ngApp 利用这个指令可以自动触发Angular程序,ngApp指令指定了angular 应用的根节点,一般都会把这个指令绑定在页面的根节点上,例如:<body>或者<html>标签. 每个页面只有一个AngularJs的应用可以被自动触发,文档中第一个ngAPP指令会自动触发AngularJs应用.如果在一个html文档中想触发多个AngularJs的应用,你需要用angular.bootstrap来手动触发.angularJs应用不能互相嵌套. 你可以为angular应用

推荐 15 个 Angular.js 应用扩展指令(参考应用)

几天前我们看到Angular 1.4.0发布了-一个以社团为驱动的发布版本涵盖了400多个GitHub的提交,增加了对特性的提升,比如动画,以及可用性. 官方新闻发布稿 覆盖了绝大部分,这同样值得放于 官方版本库 中. Angular.js   是一个神奇的JS框架,这一点毫无疑问,但是尽管受欢迎度和社团日益增长,但是社团中的很多开发者觉得Angular是另外一种浪费个人时间和效率的形式.在这些最不招人喜欢的问题中你会发现,测试和调试简直就是一个噩梦.你可以从网络上找到一些分散的报告, 这里有一

Kinect 开发 &mdash;&mdash; 用户交互设计的若干思考

Metro 风格 windows 8 Kinect Hub 手势原型设计 悬停选择     翻页控制 关节点重叠的处理方法 将箭靶设置在画面的边缘,这样玩家持弓的角度与屏幕保持一个大约45度的锐角,这样Kinect可以很精确的检测到拉弓射箭的动作 手势天生具有一定随意性,而且具有一定的文化背景差异性   手与设备的非接触性 虚拟触摸的界面 Kinect 使交互"柔软化"   确认操作保持简单一致 悬停选择 -- 将手停在想要选择的项目方块或按钮上,等待进度圆圈的填充,这个过程会在T时间

angular开发中的两大问题

一.在我们的angular开发中,会请求数据但轮播图等...在请求过数据后他的事件和方法将不再执行: 看我们的解决方案一: app.controller("text",function($scope,$http,$timeout){ $http.get("http://127.0.0.1:3333/huoqu").success(function(data){ $scope.shuju=data.img $timeout(function(){ //在请求完成时,强

Angular.js中的指令——易懂全解析

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> </span><span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">angular.js中,指令是最基础的

微信公众平台开发 用户分组接口

本文介绍在微信公众平台上如何使用高级接口开发用户分组接口的功能. 一.接口介绍 开发者可以使用接口,对公众平台的分组进行查询.创建.修改操作,也可以使用接口在需要时移动用户到某个分组. 一个公众账号,最多支持创建500个分组. 接口调用请求说明创建分组 http请求方式: POST(请使用https协议) https://api.weixin.qq.com/cgi-bin/groups/create?access_token=ACCESS_TOKEN POST数据格式:json POST数据例子

用户登陆状态,ios开发用户登陆

IOS开发之记录用户登陆状态,ios开发用户登陆 上一篇博客中提到了用CoreData来进行数据的持久 化,CoreData的配置和使用步骤还是挺复杂的.但熟悉CoreData的使用流程后,CoreData还是蛮好用的.今天要说的是如何记录我们用户 的登陆状态.例如微信,QQ等,在用户登陆后,关闭应用在打开就直接登陆了.那么我们在App开发中如何记录用户的登陆状态呢?之前在用PHP或者 Java写B/S结构的东西的时候,我们用Session来存储用户的登陆信息,Session是存在服务器上仅在一

菜鸟级springmvc+spring+mybatis整合开发用户登录功能(上)

菜鸟级springmvc+spring+mybatis整合开发用户登录功能(上) 菜鸟级springmvc+spring+mybatis整合开发用户登录功能(下)

IOS开发之记录用户登陆状态,ios开发用户登陆

IOS开发之记录用户登陆状态,ios开发用户登陆 上一篇博客中提到了用CoreData来进行数据的持久化,CoreData的配置和使用步骤还是挺复杂的.但熟悉CoreData的使用流程后,CoreData还是蛮好用的.今天要说的是如何记录我们用户的登陆状态.例如微信,QQ等,在用户登陆后,关闭应用在打开就直接登陆了.那么我们在App开发中如何记录用户的登陆状态呢?之前在用PHP或者Java写B/S结构的东西的时候,我们用Session来存储用户的登陆信息,Session是存在服务器上仅在一次回话