$ rootScope.$ new()和$ rootScope.$ new(true)之间有什么区别?

hua*_*eng 3 angularjs angularjs-scope

任何人都可以帮助理解之间的差异$rootScope.$new()$rootScope.$new(true)?根据我的理解,它们应该是相同的,因为$rootScope没有父范围.

tas*_*ATT 8

第一个参数$new决定新范围是否应隔离.

考虑以下:

$rootScope.data = { property: 'Value' };

var childA = $rootScope.$new();

var childB = $rootScope.$new(true);
Run Code Online (Sandbox Code Playgroud)

childA不会被隔离,并且data由于原型继承而可以访问.

childB将被隔离并且不会继承$rootScope(实际上它仍然可以data通过$parent属性访问,但这是另一个问题).