$watch 監(jiān)視數(shù)據(jù)模型的變化
$scope.name = '小明'
$scope.age = 18
// $watch可以用來監(jiān)視數(shù)據(jù)模型的變化
// 第一個參數(shù): 數(shù)據(jù)模型對應(yīng)的名字(字符串形式)
// 第二個參數(shù): 相應(yīng)的數(shù)據(jù)模型變化就會調(diào)用 這個函數(shù)
// 默認會直接執(zhí)行一次回調(diào)函數(shù)
$scope.$watch('name',function(now,old){
// 第一個參數(shù)是變化后的值
// 第二個參數(shù)是變化前的值
// console.log(now,old)
})
$scope.getAge = function(){
return $scope.age
}
// 也能夠監(jiān)視$scope.屬性中的方法的返回值
$scope.$watch('getAge()',function(now,old){
console.log(now,old)
})
//*$watch監(jiān)視的是$scope的屬性旺遮,如果是一個普通變量是無法監(jiān)視的*
function getName(){
return $scope.name
}
$scope.tmp = getName
$scope.$watch('tmp()',function(now,old){
console.log(now,old)
})
$watch具體代碼
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>$watch</title>
</head>
<body ng-app="hello">
<div ng-controller="helloController">
<input type="text" ng-model="name">
<input type="text" ng-model="age">
<button>測試</button>
</div>
<script src="libs/angular.js"></script>
<script>
// 1.創(chuàng)建模塊
var app = angular.module('hello', [])
// 2.創(chuàng)建控制器
app.controller('helloController',['$scope',function($scope){
$scope.name = '小明'
$scope.age = 18
// $watch可以用來監(jiān)視數(shù)據(jù)模型的變化
// 第一個參數(shù): 數(shù)據(jù)模型對應(yīng)的名字(字符串形式)
// 第二個參數(shù): 相應(yīng)的數(shù)據(jù)模型變化就會調(diào)用 這個函數(shù)
// 默認會直接執(zhí)行一次回調(diào)函數(shù)
$scope.$watch('name',function(now,old){
// 第一個參數(shù)是變化后的值
// 第二個參數(shù)是變化前的值
// console.log(now,old)
})
$scope.getAge = function(){
return $scope.age
}
// 也能夠監(jiān)視$scope.屬性中的方法的返回值
$scope.$watch('getAge()',function(now,old){
console.log(now,old)
})
//*$watch監(jiān)視的是$scope的屬性仅炊,如果是一個普通變量是無法監(jiān)視的*
function getName(){
return $scope.name
}
$scope.tmp = getName
$scope.$watch('tmp()',function(now,old){
console.log(now,old)
})
}])
</script>
</body>
</html>
服務(wù)
// 1.創(chuàng)建服務(wù)模塊
var app = angular.module('service',[])
// 2.創(chuàng)建服務(wù)
// 第一個參數(shù):服務(wù)的名字
// 第二個參數(shù)里的function:
// angular會把這個function當作構(gòu)建函數(shù),angular會幫助我們new這個構(gòu)建函數(shù)班巩,然后得到一個對象。A,B
app.service('MyService', [function(){
this.name = '小明'
}])
// 1.創(chuàng)建模塊
var app = angular.module('todosApp', ['service'])
// 2.創(chuàng)建控制器
app.controller('todosController', [
'MyService'
, function(MyService){
// 這個MyService就是蛛碌,對應(yīng)的'MyService'時的回調(diào)函數(shù)new出的對象
console.log(MyService)
}])