2017-06-18 71 views
1

虽然在angularjs中有多个路由状态,但每个状态都由单独的控制器操作(在我的情况下),现在我正在使用这个操作符的视图模型。现在我需要知道,如果我在$ scope变量中有一个属性与其他状态的属性相匹配,那么其他状态的范围会发生什么变化?

+0

是的,当一个视图被销毁并被另一个视图替换时,旧的控制器及其范围被销毁。 – georgeawg

回答

1

当实例化的控制器创建一个全新的作用域对象,它与父$ scope对象原型链接。所以如果你有两个独立的兄弟控制器,它们各自的$scope对象是完全独立的,并且没有连接。

使用控制器时controllerAs语法(如果你在"ng-controller="MyCtrl as vm"然后指定vmthis.someProp在控制器将指向$scope.vm.someProp)将附加属性到指定键的controllerAs下$scopethis

因此在技术上没有区别是否使用this$scope关于特定的问题。

如果你想有两个控制器之间共享的状态,最好的办法是有,将暴露它的服务,你会从两个控制器注入该服务获得的状态。