AngularJS用戶選擇器指令實(shí)例分析
本文實(shí)例分析了AngularJS用戶選擇器指令。分享給大家供大家參考,具體如下:
在開(kāi)發(fā)表單時(shí),我們需要使用經(jīng)常需要使用到用戶選擇器,用戶的數(shù)據(jù)一般使用如下方式存儲(chǔ):
用戶1,用戶2,用戶3
我們可以使用angular指令實(shí)現(xiàn)選擇器。
<!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='自由港,馬云,劉強(qiáng)東'; $scope.getData=function(){ console.info($scope.names) } }]) </script> </head> <body ng-controller="ctrl"> <div ht-selector name="names"></div> <button ng-click="getData()">獲取數(shù)據(jù)</button> </body> </html>
模版URL
<div> <span ng-repeat="item in names"> {{item}}<a class="btn btn-xs fa-remove" title="移除該項(xiàng)" ng-click="remove($index)"></a> </span> <a class="btn btn-sm btn-primary fa-search" ng-click="selectUser()">選擇</a> </div>
在指令中,使用了獨(dú)立的scope,傳入的數(shù)據(jù)為使用逗號(hào)分割的字符串,我們使用了數(shù)組進(jìn)行操作。
這里的技巧是在字符串和數(shù)組之間進(jìn)行轉(zhuǎn)換。
這里使用了指令獨(dú)立的scope,使用了watch 對(duì)數(shù)組進(jìn)行操作,需要注意的是如果監(jiān)控?cái)?shù)組,需要使用深度監(jiān)控。
希望本文所述對(duì)大家AngularJS程序設(shè)計(jì)有所幫助。
- Angularjs自定義指令實(shí)現(xiàn)三級(jí)聯(lián)動(dòng) 選擇地理位置
- AngularJS Select(選擇框)使用詳解
- AngularJS入門(mén)教程之Select(選擇框)詳解
- AngularJS動(dòng)態(tài)菜單操作指令
- AngularJS 單選框及多選框的雙向動(dòng)態(tài)綁定
- AngularJS實(shí)現(xiàn)給動(dòng)態(tài)生成的元素綁定事件的方法
- AngularJS單選框及多選框?qū)崿F(xiàn)雙向動(dòng)態(tài)綁定
- AngularJs動(dòng)態(tài)加載模塊和依賴注入詳解
- AngularJS+bootstrap實(shí)現(xiàn)動(dòng)態(tài)選擇商品功能示例
相關(guān)文章
淺談angular4實(shí)際項(xiàng)目搭建總結(jié)
本篇文章主要介紹了淺談angular4實(shí)際項(xiàng)目搭建總結(jié),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-12-12Angular.js中$resource高大上的數(shù)據(jù)交互詳解
這篇文章主要給大家介紹了關(guān)于Angular.js中$resource高大上的數(shù)據(jù)交互的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用angular.js具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編來(lái)一起看看吧。2017-07-07Angular CLI發(fā)布路徑的配置項(xiàng)淺析
這篇文章主要給大家介紹了關(guān)于Angular CLI發(fā)布路徑的配置項(xiàng)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03AugularJS從入門(mén)到實(shí)踐(必看篇)
下面小編就為大家?guī)?lái)一篇AugularJS從入門(mén)到實(shí)踐(必看篇)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07基于Angular 8和Bootstrap 4實(shí)現(xiàn)動(dòng)態(tài)主題切換的示例代碼
這篇文章主要介紹了基于Angular 8和Bootstrap 4實(shí)現(xiàn)動(dòng)態(tài)主題切換的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02angular實(shí)現(xiàn)圖片懶加載實(shí)例代碼
本篇文章主要介紹了angular實(shí)現(xiàn)圖片懶加載實(shí)例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-06-06angularJS 發(fā)起$http.post和$http.get請(qǐng)求的實(shí)現(xiàn)方法
本篇文章主要介紹了angularJS 發(fā)起$http.post和$http.get請(qǐng)求的實(shí)現(xiàn)方法,分別介紹了$http.post和$http.get請(qǐng)求的方法,有興趣的可以了解一下2017-05-05