angular 學習總結 2
angular 生命周期
link函數可接受三個或四個參數,分別為:scope;ele;ettrs
scope:該指令的作用域
ele :指令元素
attrs指令上的屬性
Link:function(scope,ele,attrs){
ele.children().css("background","red"); //修改樣式
ele on("click",function(e){ //加入點擊方法
console.log(e.target)
});
scope.name="三"; // scope 表示作用域
}
link函數中的require指令
require相當於連接橋的作用
<first-directive>
<second-directive></second-directive>
</first-directive>
app.directive("firstdirective",function($scope){ //自定義指令
return{
controller:["$scope",function($scope){
$scope.firstname="first";
this.info={
name:$scope.firstname
age:30
}
}]
}
})
app.directive("seconddirective",function(){ //自定義指令
return{
template:<div><h1>第二個指令</h1></div>
link:function(scope,ele,attrs){
})
}
})
因為第一個指令沒有寫template模板,所以頁面顯示 “第二個指令”,若第一個謝了template,則頁面不在顯示第二條指令,而被第一條指令中的內容代替。
@ 註意一個定義:controller:["$scope" function($scope){
this.name="thirdDirective"}] //內聯式註入
$http服務
$http服務對瀏覽器原生的XmlHttpRequest對象進行封裝
調用的$http方法後,返回一個promise對象,進行下一步操作
status(狀態碼):200 代表成功
app.controller(‘mycontroller‘,["$scope","$http",function($scope,$http){
$http({
method:"GET"
url:"./data.json"
params:{
name:"$http服務";
}
}).then(function(res){
console.log(res.data);
})
}])
$watch:監聽 每當有一個模型與視圖進行綁定時,angular便會創建一個監聽放到監聽列表中去。
-----依賴註入 PS:重點,也是開發中的重要部分
先看一段標準的路由代碼:
<div ui-view></div> //將匹配到的ui路由規則時,將其渲染到ui-view 中去,
此處不再詳解,具體看視頻教程 見下方。
依賴註入定義:源出現於Java, c#等語言,是一種控制反轉的軟件設計模式,
註入:將被被依賴的對象實例,,傳遞給依賴對象的行為,而不需要依賴自己創建或查找他們所需對象
// 手動創建所需對象的實例
var person=function(){}
var person=new person();
依賴註入有三個角色:調用者(client) 服務(service) 註入者(injector)
簡單示意:調用者(client)只需知道(service)服務的具體接口。而具體服務(service)的查找和創建由註入者(injector)負責處理,並提供給調用者client.
第一個依賴註入的實例
var myAPP=angular.module("myapp" []);
myapp.controller("mycontroller" ,["$scope",function($scope){
//此可填寫一些內容,
}])
angular依賴註入的實現步驟分三步:
1)得到模塊的依賴項,通過參數列表也就是$scope
2) 查找該依賴項所對應的對象
3)執行時註入對象
-------------------------------------
angular 一般按照參數查找依賴,而混淆方式將參數變為無意義的代碼,因此會影響推斷註入。
angular 學習總結 2