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入門教程之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)文章
AngularJS中使用three.js的實(shí)例詳解
這篇文章主要介紹了AngularJS中使用three.js的實(shí)例詳解,我將之前自己做的demo放到了angularJS的一個(gè)component中,其實(shí)一開(kāi)始是沒(méi)有準(zhǔn)備用框架的但是后面發(fā)現(xiàn)需要進(jìn)行的雙向綁定越來(lái)越多,后期表單數(shù)據(jù)的變化量也很大,最后還是選擇用NG來(lái)做這些事情2017-07-07
詳解Angular Reactive Form 表單驗(yàn)證
本文我們將介紹 Reactive Form 表單驗(yàn)證的相關(guān)知識(shí),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07
AngularJS ngModel實(shí)現(xiàn)指令與輸入直接的數(shù)據(jù)通信
這篇文章主要介紹了AngularJS ngModel實(shí)現(xiàn)指令與輸入直接的數(shù)據(jù)通信的相關(guān)資料,需要的朋友可以參考下2016-09-09
在 Angular2 中實(shí)現(xiàn)自定義校驗(yàn)指令(確認(rèn)密碼)的方法
這篇文章給大家探索 Angular 2 內(nèi)建的自定義驗(yàn)證,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下2017-01-01
angularJs復(fù)選框checkbox選中進(jìn)行ng-show顯示隱藏的方法
今天小編就為大家分享一篇angularJs復(fù)選框checkbox選中進(jìn)行ng-show顯示隱藏的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10
AngularJS實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn)后自動(dòng)彈出對(duì)話框?qū)嵗a
這篇文章主要介紹了AngularJS實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn)后自動(dòng)彈出對(duì)話框?qū)嵗a,然后在文章下面給大家介紹了angularjs頁(yè)面加載后自動(dòng)彈窗的實(shí)例代碼,感興趣的朋友參考下吧2017-08-08
使用AngularJS創(chuàng)建自定義的過(guò)濾器的方法
這篇文章主要介紹了使用AngularJS創(chuàng)建自定義的過(guò)濾器的方法,AngularJS是非常熱門的JavaScript庫(kù),需要的朋友可以參考下2015-06-06

