http://www.tuicool.com/articles/bAJVBvB这篇已经写得很详细了,可以去看看
有个疑问就是在手动使用$apply()的时候,会出现'$apply already in progress' 的错误,经过查资料,看到一个好的解决方法
$scope.safeApply = function(fn) {
var phase = this.$root.$$phase;
if(phase == '$apply' || phase == '$digest') {
if(fn && (typeof(fn) === 'function')) {
fn();
}
} else {
this.$apply(fn);
}
};
然后使用safeApply方法即可
$scope.safeApply(function() {
alert('Now I'm wrapped for protection!');
});