最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Angular.js與Bootstrap相結(jié)合實(shí)現(xiàn)手風(fēng)琴菜單代碼

 更新時(shí)間:2016年04月13日 11:51:50   作者:Cyclone77  
這篇文章主要介紹了Angular.js與Bootstrap相結(jié)合實(shí)現(xiàn)手風(fēng)琴菜單的相關(guān)資料,需要的朋友可以參考下

標(biāo)題定的是angularjs與bootstrap相結(jié)合實(shí)現(xiàn)手風(fēng)琴菜單,其實(shí)也就是用的bootstrap的樣式。

在上篇文章給大家介紹了Angular.js與Bootstrap相結(jié)合實(shí)現(xiàn)表格分頁(yè)代碼。接著學(xué)習(xí)實(shí)現(xiàn)的Demo。

主要練習(xí)自定義指令,向指令中傳遞參數(shù),老規(guī)矩先上效果圖:

<my-page ng-repeat="item in expanders" page-title="item.title">{{item.text}}</my-page> 

上面是我自定義的指令,菜單存在標(biāo)題和內(nèi)容3條用了 ng-repeat來(lái)渲染。

指令基本API如下:

app.directive('myDirective',function(){
return {
//restrict: 默認(rèn)為A(屬性,默認(rèn)值)<div my-directive=''></div> E(元素)C(類(lèi)名)M(注釋?zhuān)?
//這里考慮到瀏覽器的兼容性通常我們用所有瀏覽器都認(rèn)識(shí)的A類(lèi)型
restrict: 'A',
//優(yōu)先級(jí)設(shè)置,默認(rèn)是0,較大的優(yōu)先調(diào)用
priority: 0,
//這個(gè)參數(shù)用來(lái)告訴AngularJS停止運(yùn)行當(dāng)前元素上比本指令優(yōu)先級(jí)低的指令。但同當(dāng)前指令優(yōu)先級(jí)相同的指令還是會(huì)被執(zhí)行。
terminal: false,
//字符串或函數(shù): 字符串<a></a>(指令內(nèi)容)
//注:必須存在一個(gè)根DOM元素
//一個(gè)可以接受兩個(gè)參數(shù)的函數(shù),參數(shù)為tElement和tAttrs,并返回一個(gè)代表模板的字符串 
//function(tElement, tAttrs) { ... }
template: '', 
//從指定的url地址加載模板
templateUrl: '',
//如果設(shè)置了這個(gè)參數(shù),值必須為true
replace: false,
//指定指令的作用域
scope:'',
//
transclude:'',
//string
//function(scope, element, attrs, transclude, otherInjectables) { ... }
controller:'',
//
controllerAs: '',
//
require: '',
//以編程的方式操作DOM,包括添加監(jiān)聽(tīng)器等
link: function postLink(scope, iElement, iAttrs) {},
//
compile: // 返回一個(gè)對(duì)象或連接函數(shù),如下所示:
function(tElement, tAttrs, transclude) {
return {
pre: function(scope, iElement, iAttrs, controller) { },
post: function(scope, iElement, iAttrs, controller) { }
}
// 或者
return function postLink() { }
};
};
}) 

如何切換的時(shí)候讓其他的隱藏呢,這里主要用到指令ng-show,記錄當(dāng)前點(diǎn)擊的,來(lái)隱藏其他的。

具體代碼注釋如下:

<style type="text/css">
.con {
margin: 0 auto;
width: 600px;
margin-top: 100px;
}
.panel {
width: 580px;
}
.panel-heading {
cursor: pointer;
}
</style>
<link rel="stylesheet"  />
<div class="con" ng-app="myApp" ng-controller="myCtrl">
<my-page ng-repeat="item in expanders" page-title="item.title">{{item.text}}</my-page>
</div>
<script src="http://apps.bdimg.com/libs/angular.js/1.5.0-beta.0/angular.js"></script>
<script type="text/javascript">
var app = angular.module('myApp', []);
app.directive('myPage', function () {
return {
restrict: 'EA',
replace: true,
transclude: true, //是否將元素內(nèi)容轉(zhuǎn)移到模版中
scope: {
title: "=pageTitle"
},
template: [
'<div class="panel panel-info">',
'<div class="panel-heading" ng-click="toggle();">',
'<h3 class="panel-title" >{{title}}</h3>',
'</div>',
'<div class="panel-body" ng-show="showMe" ng-transclude></div>',
'</div>'
].join(""),
link: function (scope, element, attrs) {
scope.showMe = false;
scope.$parent.addExpander(scope); //保存所有菜單
scope.toggle = function toggle() {
scope.showMe = !scope.showMe; //隱藏顯示
scope.$parent.goToExpander(scope);
}
}
};
})
app.controller('myCtrl', function ($scope) {
$scope.expanders = [{
title: 'AngularJS',

text: 'AngularJS 誕生于2009年,由Misko Hevery 等人創(chuàng)建,后為Google所收購(gòu)。是一款優(yōu)秀的前端JS框架,已經(jīng)被用于Google的多款產(chǎn)品當(dāng)中。AngularJS有著諸多特性,最為核心的是:MVVM、模塊化、自動(dòng)化雙向數(shù)據(jù)綁定、語(yǔ)義化標(biāo)簽、依賴(lài)注入等等。'


}, {
title: 'jQuery',
text: 'JQuery是繼prototype之后又一個(gè)優(yōu)秀的Javascript庫(kù)。它是輕量級(jí)的js庫(kù) ,它兼容CSS3,還兼容各種瀏覽器(IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+),jQuery2.0及后續(xù)版本將不再支持IE6/7/8瀏覽器。jQuery使用戶(hù)能更方便地處理HTML(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言下的一個(gè)應(yīng)用)、events、實(shí)現(xiàn)動(dòng)畫(huà)效果,并且方便地為網(wǎng)站提供AJAX交互。jQuery還有一個(gè)比較大的優(yōu)勢(shì)是,它的文檔說(shuō)明很全,而且各種應(yīng)用也說(shuō)得很詳細(xì),同時(shí)還有許多成熟的插件可供選擇。jQuery能夠使用戶(hù)的html頁(yè)面保持代碼和html內(nèi)容分離,也就是說(shuō),不用再在html里面插入一堆js來(lái)調(diào)用命令了,只需要定義id即可。'
}, {
title: 'Bootstrap',
text: 'Bootstrap,來(lái)自 Twitter,是目前很受歡迎的前端框架。Bootstrap 是基于 HTML、CSS、JAVASCRIPT 的,它簡(jiǎn)潔靈活,使得 Web 開(kāi)發(fā)更加快捷。 它由Twitter的設(shè)計(jì)師Mark Otto和Jacob Thornton合作開(kāi)發(fā),是一個(gè)CSS/HTML框架。Bootstrap提供了優(yōu)雅的HTML和CSS規(guī)范,它即是由動(dòng)態(tài)CSS語(yǔ)言L(fǎng)ess寫(xiě)成。Bootstrap一經(jīng)推出后頗受歡迎,一直是GitHub上的熱門(mén)開(kāi)源項(xiàng)目,包括NASA的MSNBC(微軟全國(guó)廣播公司)的Breaking News都使用了該項(xiàng)目。 國(guó)內(nèi)一些移動(dòng)開(kāi)發(fā)者較為熟悉的框架,如WeX5前端開(kāi)源框架等,也是基于Bootstrap源碼進(jìn)行性能優(yōu)化而來(lái)。'
}];
var expanders = []; //記錄所有菜單
$scope.addExpander = function (expander) {
expanders.push(expander);
};
$scope.goToExpander = function (selectedExpander) {
expanders.forEach(function (item, index) {
if (item != selectedExpander) { //隱藏非當(dāng)前選項(xiàng)卡
item.showMe = false;
}
})
}
});
</script>

相關(guān)文章

最新評(píng)論

商洛市| 拜泉县| 鄂伦春自治旗| 札达县| 齐齐哈尔市| 长汀县| 武定县| 石河子市| 富锦市| 凌源市| 武宁县| 邛崃市| 略阳县| 祁东县| 龙南县| 甘洛县| 公安县| 松原市| 吉木乃县| 永寿县| 二手房| 呼伦贝尔市| 隆昌县| 赤壁市| 嘉义市| 满城县| 林口县| 大余县| 深圳市| 越西县| 通州区| 洛阳市| 彩票| 古丈县| 田东县| 冷水江市| 庐江县| 仙居县| 肇源县| 历史| 比如县|