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