首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RequireJS +角:未定义的应用程序。回拨不会开枪

RequireJS +角:未定义的应用程序。回拨不会开枪
EN

Stack Overflow用户
提问于 2014-12-15 10:52:14
回答 1查看 153关注 0票数 4

我用这个简单的代码获得了main.js:

代码语言:javascript
复制
'use strickt';

require.config({

  paths: {
    'angular'        : 'libs/angular'          ,
    'angular-router' : 'libs/angular-route'    ,
  },
  shim : {
    'angular' : {
      exports : 'angular'
    },
    'angular-router' : {
      deps: ['angular']
    }
  }

});

require(['app'], function (mainApp) {
  console.log(mainApp);
});

正如您所看到的,我尝试在require中获取应用程序。但我所得到的都是未知的。下面是我在app.js文件中得到的内容:

代码语言:javascript
复制
define('mainApp', ['angular', 'angular-route'], function (angular) {
  var app = angular.module('mainApp', ['ngRoute']);
  console.log('should be fired from app.js');
  return app;
});

因此,问题是:函数参数'mainApp‘在main.js回调中没有定义,这似乎是合乎逻辑的,因为app.js中的console.log()不会射击。有人能告诉我它有什么问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-01 20:16:27

只需删除app.js文件中的模块名(或将其更改为“app”)即可。您的app.js文件如下所示:

代码语言:javascript
复制
define(['angular', 'angular-route'], function (angular) {
  var app = angular.module('mainApp', ['ngRoute']);
  console.log('should be fired from app.js');
  return app;
});

http://requirejs.org/docs/api.html#modulename 您可以自己显式地命名模块,但这会降低模块的可移植性--如果您将文件移动到另一个目录,则需要更改该名称。通常最好避免在模块的名称中进行编码,而只是让优化工具在模块名称中刻录。优化工具需要添加名称,以便可以将多个模块捆绑在一个文件中,以便能够更快地在浏览器中加载。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27482394

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档