1

我的问题很像这样: AngularJS 种子:将 JavaScript 放入单独的文件(app.js、controllers.js、directives.js、filters.js、services.js) 我可以在其中一个文件中创建一个函数吗?被别人叫?如果是这样,我必须添加什么?我不添加它的唯一原因是因为它已关闭。任何帮助都会很棒!

4

1 回答 1

4

访问另一个控制器将是完全错误的。你有很多方法可以在他们之间进行交流。这里有3个简单的:

  1. 范围:您可以使用 $parent 或仅使用 $rootScope 访问所有父控制器的范围(不要过度使用它,否则您的根范围会很混乱)。请记住,在您更改它们之前,您的范围也始终具有您的父范围对象。在作用域变量上使用 $watch 可以使您在需要时代码更清晰。(参见范围文档)

  2. 事件:非常简单。您使用 $scope.$on 收听并使用 $scope.$broadcast 或 $scope.$emit 发送它(取决于您是否想要通知孩子或父母)。

  3. 服务:如果您尝试实现的内容没有明确的控制器所有者,您可能必须考虑使用服务。然后,您可以在所有控制器中使用它。(请参阅创建服务)

大多数情况下,您最终会使用范围,因为您想与父控制器交互。让我知道是否有任何不清楚的地方。

于 2013-08-27T02:18:20.710 回答