2

我有一个项目,我使用 Traceur 以 ES6 格式开发我的代码,并将模块加载设置为转换为 AMD 样式以使用 RequireJS。我有以下代码(从 ocLayLoad 示例项目中获得)

angular.module("testApp",[]).directive("sayHello", function() {
  return {
    scope: {
        to: '@to'
    },
    restrict: "E",
    template: '<p>Hello {{to}}</p>'
  };
});

如果我使用带有 ocLazyLoad + RequireJS 的纯 ES5 样式,一切正常。但是,当 Traceur 处理该类时,它被包装在一个 define() 函数中,如下所示:

define([], function() {
  "use strict";
  angular.module("testApp", []).directive("sayHello", function() {
    return {
      scope: {to: '@to'},
      restrict: "E",
      template: '<p>Hello {{to}}</p>'
    };
  });
  return {};
});

但是,在这种情况下,由于某种原因,延迟加载不起作用。它会抛出一个错误,即模块“testApp”未在 Angular 中注册。想法是什么阻止了 ocLazyLoad 加载模块?

4

0 回答 0