天天看點

AngularJS-2

一、自定義指令

文法:

var app = angular.module('myModule',['ng']);

app.directive(name,fn);

自定義指令:

restrict:'EACM'

E-->Element 元素

A-->Attribute 屬性

C-->Class 

M-->Comment 注釋(在指令中添加一個屬性:replace:true)

新指令的命名:

①駝峰式

②字首一般是公司或者項目的簡寫,字尾一般是指令的作用

③使用指令: tsHello--->ts-hello

在第二個參數 指定一個方法,在方法中傳回一個對象設定指令。對象中template、restrict、replace、scope。。。

總結:如果要參數的傳遞,需要在建立指令的時候,加上scope,同時指定對應的屬性的名稱(testName),在使用指令的時候,需要加上對應的屬性(test-name='')

二、雙向資料綁定

1、方向1的綁定(Model資料 綁定到View)

實作方法:{{name}}、常用指令(ngRepeat/ngBind/ngIf...)

相比DOM操作:先去查找元素,再去設定元素,隻需要把model資料綁定視圖上,資料改,視圖就會更新。

2、方向2的綁定(将View資料綁定到Model資料)

實作方法隻有一種方式: ng-model

<input type='text' ng-model='myText'/>

$scope.$watch('模型變量名',function(){})

三、過濾器

過濾器是用在表達式中,實作對表達式結果的篩選、過濾、格式化,達到更好的表現效果

文法:|--》管道

{{表達式 | 過濾器1:'name' | 過濾器2 }}

currency 貨币樣式的過濾器

date 日期

uppercase

lowecase 大小寫的轉換

orderBy 升序或者降序  orderBy:'age':true

limitTo 限定顯示的數量

number 限制顯示小數點後幾位

四、常用函數

forEach

uppercase/lowercase

toJson/fromJson 

序列化:将一個json對象轉換為json格式的字元串

反序列化:将一個json格式的字元串 轉換為json格式的對象

五、服務

在ng中 服務 是 一種單例對象,所謂單例,服務在每一個應用中隻會被執行個體化一次。

功能:為應用提供資料和對象

兩大類:①内置的服務 ②自定義服務

1、内置的服務的使用方法

如果在控制器中,使用ng中内置的服務,需要在控制器的回調函數中

①将對應的服務給注入進來

②使用服務所提供的資料和對象

app.controller('myCtrl',function($scope,$location){

var url = $location.absUrl();

});

2、控制器和作用範圍

$scope與$rootScope:

$scope是$rootScope的子作用域控制對象,$rootScope的id為1,其他的為2,3....

不同的控制器之間,所對應的作用域控制對象($scope),之間是互相隔離的,如果要共享資料,怎麼辦?

借助$rootScope這個根作用域控制對象來實作。

如果父作用域對象想要調用子作用域對象的變量或者方法,ng提供了2個方法:

①$broadcast  将事件從父親傳遞給子級

$scope.$broadcast(eventName,data);

②$emit 将事件從子級傳遞給父親

$scope.$emit(eventName,data);

接收:

$scope.$on(eventName,function(event,data){

})

繼續閱讀