最近在开发项目的时候,发现了AngularJS一个很好玩的特性。我们知道AngularJS的scope存在父子关系,当我们通过scope.$apply()手动刷新子作用域的时候,父作用域也会被刷新;反过来也是如此。
<!doctype html>
<html lang="en" ng-app>
<head>
<meta charset="utf-8">
<title>ng-model</title>
<script src="angular-1.2.25.js"></script>
<script>
var outerScope = null;
var innerScope = null;
function outerController($scope)
{
outerScope = $scope;
outerScope.out = "out";
}
function innerController($scope)
{
innerScope = $scope;
innerScope.in = "in";
}
function outerFunc()
{
innerScope.in = "parent";
outerScope.out = "parent";
// 刷新父scope
outerScope.$apply();
}
function innerFunc()
{
innerScope.in = "child";
outerScope.out = "child";
// 刷新子scope
innerScope.$apply();
}
</script>
</head>
<body ng-controller="outerController">
{{out}}
<button onclick="outerFunc();">outerFunc</button>
<div ng-controller="innerController">
{{in}}
<button onclick="innerFunc();">innerFunc</button>
</div>
</body>
</html>
本文深入探讨了AngularJS中父子作用域通过$apply()方法手动刷新时的双向刷新特性,通过实例展示了如何在父作用域和子作用域之间实现数据同步更新。
203

被折叠的 条评论
为什么被折叠?



