1

角度教程在定义模块之间来回切换,如下所示:

angular.module('appname', ['phonecatFilters','phonecatAnimations']).
  config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {
   ...
      };*/

像这样:

var phonecatApp = angular.module('phonecatApp', [
  'ngRoute',

  'phonecatAnimations',
  'phonecatControllers',
  'phonecatFilters',
  'phonecatServices'
]);

phonecatApp.config(['$routeProvider',
  function($routeProvider) {
    $routeProvider.
      etc...
      });
  }]);

我无法将动画模块加载到我已经工作的应用程序中,该应用程序以第一种方式定义它们。我收到“缺少提供者”错误。这是因为我混合了定义模块的方法吗?从他们的文档中并不清楚,他们还在教程期间将整个应用程序在一种方法和另一种方法之间切换,这令人沮丧。谢谢任何人!

4

3 回答 3

0

任何一种方法都是有效的,并且不太可能成为问题的根源。跳到脑海的第一种可能性 - 确保你也包括了动画。因此,您的 index.html 标头中应包含以下内容(或来自 CDN 的链接)。

  <script src="angular-animate.js">

或者,如果不是这样,在此处包括您的代码,理想情况下包括在http://plnkr.co上显示问题的版本,这样我们都可以尝试一下,这是一个很大的帮助。

这两种不同的风格源于支持每种风格的javascript。您展示的第二种方法是将模块分配给变量然后扩展它。

它支持所谓的链式调用,就像在您的第一个版本中一样 (firstFunction().secondFunction().lastFunction()。这在函数式程序员中特别受欢迎,因为它非常适合这种心态/方法。

于 2013-10-16T22:44:58.630 回答
0

你定义你的应用程序模块两次?

angular.module('appname', ['phonecatFilters','phonecatAnimations'], ...

注射应该只发生一次。其他调用不应使用 [],因为这将创建一个新模块,替换您以前的模块。

于 2013-10-16T22:59:06.020 回答
0

答案原来是我的 Angular 版本是 1.0。我正在使用教程中的角度。我从这里的 Git 存储库下载了工作教程:https ://github.com/angular/angular-phonecat

并将我所有的文件并排比较。一旦我将我的版本升级到该演示中使用的 Angular 1.2,它就可以工作了。我需要为新版本进行一些其他更改(例如将控制器名称放在引号中),但现在一切正常。希望这对其他人有帮助。

于 2013-10-17T23:44:33.527 回答