angularjs代碼筆記01,angularjs簡介

本文目錄一覽:

請問誰有混淆Angularjs代碼的經驗

由於AngularJS是通過控制器構造函數的參數名字來推斷依賴服務名稱的。所以如果你要壓縮控制器的JS代碼,它所有的參數也同時會被壓縮,這時候依賴注入系統就不能正確的識別出服務了。

假如我們的Controller的名稱為:BookCtrl,壓縮前的代碼為:

var BookCtrl = function($scope, $http) { /* constructor body */ };

為了克服壓縮引起的問題,只要在控制器函數裡面給$inject屬性賦值一個依賴服務標識符的數組:

BookCtrl.$inject = [‘$scope’, ‘$http’];

另一種方法也可以用來指定依賴列表並且避免壓縮問題——使用Javascript數組方式構造控制器:把要注入的服務放到一個字符串數組(代表依賴的名字)里,數組最後一個元素是控制器的方法函數:

var BookCtrl = [‘$scope’, ‘$http’, function($scope, $http) { /* constructor body */ }];

上面提到的兩種方法都能和AngularJS可注入的任何函數完美協作,要選哪一種方式完全取決於你們項目的編程風格,建議使用數組方式

如何使用angularjs處理動態菜單

angularjs處理動態菜單的實現方法:

1、核心angularjs代碼:

var testImg=angular.module(“appTest”,[“ms.leafMenu”])

.controller(‘testCtr’,[‘$scope’,function($scope){

$scope.data=[{“id”:”1″,”pid”:”0″,”name”:”第一行”,”children”:[{“id”:”3″,”pid”:”1″,”name”:”第一行1.1″},{“id”:”4″,”pid”:”1″,”name”:”第一行1.2″}]},{“id”:”2″,”pid”:”0″,”name”:”第二行”,”children”:[{“id”:”5″,”pid”:”2″,”name”:”第二行2.1″}]}];

}]);

angular.module(“ms.leafMenu”,[])

.directive(‘msLeafMenu’,[‘$compile’,function($compile){

return {

restrict:’EA’,

transclude: true,

replace: false,

//template:”li/li”,

scope:{

data:’=?’,

id:’@?’,

pid:’@?’,

pvalue:’@?’,

showname:’@?’,

isstandard:’@?’

},

link:function(scope,element,attrs,leafController){

創建節點數據的方法:

function createTreeData(id,pid,pvalue){

var newData=[];

angular.forEach(scope.data,function(item,index){

if(item[pid]==pvalue){

var children=createTreeData(id,pid,item[id]);

if(children children.length0){

item.children=children;

}

newData.push(item);

}

});

return newData;

}

if(!scope.isstandard){

scope.data=createTreeData(scope.id,scope.pid,scope.pvalue);

}

//向節點增加數據

element.append($compile(‘ul class=”ms_leaf_menu_group”li ng-repeat=”row in data” ng-class=”{ms_parent_item:(row.children row.children.length0),ms_child_item:(!row.children || row.children.length=0)}”div ng-click=”toogle($index)”a {{row[showname]}}/aspan class=”glyphicon” ng-class=”{\’glyphicon-chevron-right\’:(row.children row.children.length0 !row.isopen),\’glyphicon-chevron-down\’:(row.children row.children.length0  row.isopen)}”  aria-hidden=”true”/span/divdiv ng-show=”row.isopen”ms-leaf-menu data=”row.children” id=”id” pid=”pid” showname=”{{showname}}” pvalue=”{{row[id]}}”/ms-leaf-menu/div/li/ul’)(scope));

//此處是關鍵,調用入口處,需要找到index

scope.toogle=function(index){

scope.data[index][“isopen”]=!scope.data[index][“isopen”];

}

}

}

}]);

/script

2、html代碼:

body ng-app=”appTest”

div ng-controller=”testCtr” style=” width:200px; margin-left:auto; margin-right:auto;”

    ms-leaf-menu data=”data” id=”id” pid=”pid” showname=”name” pvalue=”0″/ms-leaf-menu

   /div

/body

3、效果圖

如何看angularjs源代碼

查看angularjs源代碼方法如下

大部分JS框架的源代碼都可以在Github中找到,angular.js也可以在裡面查找,要想在Github中找到相應的源代碼,步驟如下:

在瀏覽器中訪問github.com

在右上角的搜索框中輸入想要查找的源代碼(輸入angular.js),按回車搜索

在查詢結果中,一般來說第一個結果就是對應的源代碼(angular.js)

點進去後,可以在線查看,亦可以點擊綠色下拉按鈕“Clone or download”,用git複製地址同步源代碼到本地,或者打包成zip壓縮包下載都本地。

下回來的angularJs+bootstrap模板怎麼用?

用angular渲染bootstrap中的tab切換的

思路:先加載scope中的tabs,然後利用後台bootstrap渲染即可。

1、angularjs代碼:

angular.module(‘TabsApp’, [])

.controller(‘TabsCtrl’, [‘$scope’, function ($scope) {

$scope.tabs = [{

title: ‘One’,

url: ‘one.tpl.html’

}, {

title: ‘Two’,

url: ‘two.tpl.html’

}, {

title: ‘Three’,

url: ‘three.tpl.html’

}];

$scope.currentTab = ‘one.tpl.html’;

$scope.onClickTab = function (tab) {

$scope.currentTab = tab.url;

}

$scope.isActiveTab = function(tabUrl) {

return tabUrl == $scope.currentTab;

}

}]);

2、渲染效果:

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/284751.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-22 15:42
下一篇 2024-12-22 15:42

相關推薦

  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python字符串寬度不限制怎麼打代碼

    本文將為大家詳細介紹Python字符串寬度不限制時如何打代碼的幾個方面。 一、保持代碼風格的統一 在Python字符串寬度不限制的情況下,我們可以寫出很長很長的一行代碼。但是,為了…

    編程 2025-04-29
  • Python基礎代碼用法介紹

    本文將從多個方面對Python基礎代碼進行解析和詳細闡述,力求讓讀者深刻理解Python基礎代碼。通過本文的學習,相信大家對Python的學習和應用會更加輕鬆和高效。 一、變量和數…

    編程 2025-04-29
  • 倉庫管理系統代碼設計Python

    這篇文章將詳細探討如何設計一個基於Python的倉庫管理系統。 一、基本需求 在着手設計之前,我們首先需要確定倉庫管理系統的基本需求。 我們可以將需求分為以下幾個方面: 1、庫存管…

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29
  • 寫代碼新手教程

    本文將從語言選擇、學習方法、編碼規範以及常見問題解答等多個方面,為編程新手提供實用、簡明的教程。 一、語言選擇 作為編程新手,選擇一門編程語言是很關鍵的一步。以下是幾個有代表性的編…

    編程 2025-04-29
  • Java2D物理引擎簡介及應用

    本文將介紹Java2D物理引擎的基本概念、實現原理及應用案例,以及對應代碼示例。 一、物理引擎概述 物理引擎是一種計算機程序,用於模擬物理系統中的對象和其互動,如重力、碰撞、彈力等…

    編程 2025-04-29
  • Python實現簡易心形代碼

    在這個文章中,我們將會介紹如何用Python語言編寫一個非常簡單的代碼來生成一個心形圖案。我們將會從安裝Python開始介紹,逐步深入了解如何實現這一任務。 一、安裝Python …

    編程 2025-04-29
  • 怎麼寫不影響Python運行的長段代碼

    在Python編程的過程中,我們不可避免地需要編寫一些長段代碼,包括函數、類、複雜的控制語句等等。在編寫這些代碼時,我們需要考慮代碼可讀性、易用性以及對Python運行性能的影響。…

    編程 2025-04-29
  • 北化教務管理系統介紹及開發代碼示例

    本文將從多個方面對北化教務管理系統進行介紹及開發代碼示例,幫助開發者更好地理解和應用該系統。 一、項目介紹 北化教務管理系統是一款針對高校學生和教職工的綜合信息管理系統。系統實現的…

    編程 2025-04-29

發表回復

登錄後才能評論