Angular控制器继承没有$ scope的变量

时间:2015-10-27 10:47:54

标签: angularjs inheritance controller

我试图遵循John Papa的指导原则,其中他解释了如何使用thiscontrollerAs结合使用优于$scope

问题在于我无法找到一种简单的方法来获取在ParentController(user)中定义的变量(vm.user)并使用它,甚至可以在ChildController中对其进行转换。

插图代码:

controllers.js

 app.controller('ParentController', function() {
     var vm = this;
     vm.user = {firstName:"John", lastName:"doe"};
 });

app.controller('ChildController', function() {
     var vm = this;
     /* How can I access 'vm.user' defined in ParentController
        without using $scope as John Papa's suggests ? */
 });

index.html

<div ng-controller="ParentController as parent">
    <div ng-controller="ChildController as child">
</div>

我可以将所有内容放在一个大控制器中,但我希望保持我的代码清洁和可读。

谢谢!

1 个答案:

答案 0 :(得分:3)

您不应该从一个控制器访问数据到另一个控制器,这不是一个好习惯。要在控制器之间共享数据,您应使用{{1}}。

这里有JSBin示例。