半年后,我想我完全了解发生了什么。正如对这篇文章的评论中指出的那样,最简单的答案是服务。
在最佳情况下,所有范围变量都是从工厂/服务收集的值。不过,您可能仍想使用具有一个额外功能的完全相同的控制器:$
scope.someFunction(){},并保留其余功能。在这种情况下,您确实有一个“薄”的控制器逻辑,这是理想的控制器设计-
但可能仍然会导致一百或更多行代码。您不希望在其他控制器中重复该操作,只是因为您需要一些额外的控制器逻辑(例如$ scope.someFunction())
那你怎么办呢?
答案是这样的:
- 确保您已尽力解决工厂问题
- 如果绝对确定已完成,请进行控制器注入:
.controller('childController', function ($scope, $controller) { 'use strict'; $controller('parentController', {$scope: $scope}); $scope.someFunction=function(){} })就这么简单。-同样,通常情况下,工厂可以解决问题。
希望你觉得这个有用 ;)



