我在一个页面上有两个控制器。它们被“包装”在 HTML 标记上,一个是“父”,另一个是“子”,如下所示:
<div id="parent" ng-controller="parentController">
<div id="child" ng-controller=childController">
</div>
</div>
在我的控制器的 JS 文件中,我从“子”控制器中的“父”控制器引用了一个对象。
父控制器:
angular.module('myApp').controller('parentController', function($scope){
$scope.myReferencedObject = {};
$scope.myReferencedObject.someProperty = "hello world";
});
子控制器:
angular.module('myApp').controller('childController', function($scope){
$scope.childControllerVariable = $scope.myReferencedObject.someProperty;
});
因为“子”控制器嵌套在“父”控制器中,所以来自父控制器的对象在子控制器中被继承。
这在 Karma 测试中不起作用,因为所有文件都被分解为单独的单元并单独测试。单元测试时,我的“子”控制器中的$scope.myReferencedObject.someProperty
引用未定义,因为没有原型继承。
我如何在 Karma 中解决这个问题?