這里是參照慕課網(wǎng)大漠窮秋老實(shí)的的視頻Angularjs實(shí)戰(zhàn)視頻
1.index.html文件 一般用于加載js文件 其中并不需要太多的代碼 ion-nav-view可以滿足加載視圖2.在js目錄中 每個(gè)js文件的分工都明確 例如 controller.js 中只放控制器 可能是多個(gè) route.js中主要是路由 同樣也可能是多個(gè)3.路由中ngRoute和uiRoute的選擇和區(qū)別 route的引包順序 必須至于angular.js的后面 uiRoute相對(duì)ngRoute來(lái)說(shuō)可以嵌套更深層次的路由 ngRoute是angular自帶的路由 而uiRoute是根據(jù)ngRoute開發(fā)的第三方插件4.directive :自定義指令angular.module('MyApp',[]) .controller('MyCtrl',function($scope){ $scope.Name=""; }) .directive("hello",function(){//自定義標(biāo)簽 directive return{ restrict:'EACM',//E:作為元素名使用,A:作為屬性使用,C:作為類名使用,M:作為注釋使用,默認(rèn)為EA transclude:true, template:'<div>他的名字是<span ng-bind="Name"></span><div ng-transclude></div></div>', replace:'true'//是否刪除外層的自定義標(biāo)簽 } }) //run方法 當(dāng)所注冊(cè)器加載完所有模塊時(shí) 會(huì)執(zhí)行一次.run(function($templateCache){ $templateCache.put("hello.html","<div>Hello Everyone!!</div>")})在template中拼接太多的html標(biāo)簽會(huì)顯得累贅且可讀性差 所以可以用templateUrl在后面直接跟html文件的地址templateUrl:'hello.html',如果希望在自定義標(biāo)簽中顯示html標(biāo)簽 那么可以再directive中添加屬性transclude↑↑↑5.例:當(dāng)鼠標(biāo)進(jìn)入或者穿過(guò)元素時(shí) 執(zhí)行加載事件angular.module('MyApp',[]) .controller('MyCtrl',function($scope){ $scope.Name=""; $scope.loadData = function(){ console.log("正在加載數(shù)據(jù)。。。。。。"); } }).directive("loader",function(){ return{ restrict:"AEMC", link:function(scope,element,attr){//scope指的$scope element指的當(dāng)前directive元素 attr這個(gè)元素的屬性 element.bind("mouseenter",function(){//bind() 方法為被選元素添加一個(gè)或多個(gè)事件處理程序,并規(guī)定事件發(fā)生時(shí)運(yùn)行的函數(shù)。mouseenter:鼠標(biāo)進(jìn)入事件 scope.loadData();//scope.apply("loadData") }) } } })如果同時(shí)有兩個(gè)控制器想用該標(biāo)簽 但是因?yàn)榭刂破鞑煌?標(biāo)簽不同 可以采用賦予屬性的方法 例如:<loader howToLoad="loadData()">加載數(shù)據(jù)</loader>scope.$apply(attrs.howtoload);//要寫成小寫6.ng的form指令和原生的form的區(qū)別6.1:HTML原生的表單是不能嵌套的 而ng封裝后的表單是可以嵌套的6.2:ng為表單擴(kuò)展了校驗(yàn)和防止重復(fù)提交功能6.3:ng對(duì)input的type進(jìn)行了擴(kuò)展(text,number,url,email,radio,checkbox,hidden,button,submit,reset)6.4:ng為表單內(nèi)置了4種CSS樣式(ng-invalid:字段內(nèi)容是非法的,ng-PRistine:表單沒(méi)有填寫記錄,ng-dirty:表單有填寫記錄,ng-valid:字段內(nèi)容合法的)6.5:內(nèi)置了校驗(yàn)器(require:不能為空,minlength:最小長(zhǎng)度,maxlength:最大長(zhǎng)度)設(shè)置按鈕是否可用:ng-disabled7.$http一個(gè)簡(jiǎn)單的http請(qǐng)求$scope.GetList = function(){ $http.get("Hello.json").success(function(data){ console.log(data); }).error(function(data){ console.log(data); }) }8.filter自定義html的代碼:<p>{{1239123 | filter1 }}</p> js的代碼:.filter("filter1",function(){ return function (item){ return item+"O(∩_∩)O~~" } })最后頁(yè)面上成功顯示1239123O(∩_∩)O~~如果沒(méi)有自定義 可以直接用 例如<p>{{1239123 | date:"yyyy-MM-dd hh-mm-ss"}}</p>頁(yè)面顯示1970-01-01 08-20-39
新聞熱點(diǎn)
疑難解答
圖片精選