我当前的控制器$scope
有点$watch
和事件处理程序。
有一点我需要为模态创建一个新的作用域,它没有自己的控制器,因为它非常简单。它仍然需要当前$scope
的属性。我想知道以下哪种解决方案更好,为什么?
A)
var modalScope = $rootScope.$new();
modalScope.neededValue = $scope.neededValue;
b)中
var modalScope = $scope.$new();
// modalScope.neededValue already there
我是否应该担心创建的modalScope
还会关注那些表情和事件?我应该注意的任何其他方面?
答案 0 :(得分:1)
选项a)仅复制值一次,并且不会使其与$scope
保持同步,因此可能会导致混乱的错误。如果您的模态具有深层范围层次结构,那么在某些情况下,选项a)可能会给您带来非常轻微的性能优势(在$broadcast
上调用$scope
意味着它需要覆盖较小的范围树),但是总而言之,我会说选项b)是要走的路。
除非$watch
特定范围,否则$digest
es不会从范围的位置中获益。