使用带角度js的require js

时间:2016-02-28 19:38:51

标签: javascript angularjs requirejs

我正在尝试将require js和angular js一起使用。通过谷歌搜索引用某人指南:

两个指南似乎都使用了角度,角度路线和角度,但是我认为它们是出于其他复杂目的,所以我只使用了“角度js”(所以在require中没有shim。配置())。

我的main.js看起来像这样;

require.config({
    paths: {
        jquery      : 'https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min',
        'angular'   : 'https://ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular.min',
        'class'     : 'class',
        'utility'   : '../utility/utility',
    },

    deps: ['main1']
});

其中deps: ['main1']是在require定义为第一个指南使用后立即加载的文件。

但我一直收到这个错误:

Error: $injector:modulerr

('UpdateApp'是我在项目中使用的应用程序的名称。)

网页上说当我忘记将文件包含在已定义的模块中时,我会收到错误。

不使用deps: ['main1']但使用require(['angular'], function(){}并注销angular.module('myApp',[])日志对象很好。 ......似乎require(['angular'], function(angular)不起作用,但require(['angular'], function()对我有用,导游似乎并没有告诉我是应该做后者还是前者。

我认为这就像在paths中添加角度j一样简单,加载require()define()会有效,但不是......

如何使用Require JS和Angular JS一起使用它们来打印“hello world”一样简单?

3 个答案:

答案 0 :(得分:1)

查看您的代码,我可以看到您明显误解了使用requireJS和angular一起使用的概念。您找到的任何一个链接都是由专业的JS开发人员制作的。两者都试图将角度和requireJS结合起来尽可能简单。所以你需要接受它很复杂的事实。

=> 这就是为什么我不会尝试帮助您使用某些代码。因为它需要花费大量时间,并且它将涉及许多主题,这些主题不太可能适合堆栈溢出的单个问题和答案。

  

我如何使用Require JS和Angular JS一样简单,只需将它们一起用于打印" hello world"?

起初我想重复一遍。这与简单的工作完全不同。对于requireJS,你需要至少掌握有关AMD的内容的高级知识,并能够想象requireJS尝试加载JS库时异步发生的事情。

其次,关于angular模块/服务注入的常识。由于requireJS和angular都可以进行某种模块/服务注入,因此您需要了解这两者之间的区别。

第三,你的webapp的初始阶段。因为需要初始化requireJS和angular才能正常运行。所以这也是要求。

总结

你不可能在一两天内理解这两者。需要花时间。但幸运的是,我有几个建议。

  • 研究一下requireJS和角度加载它们的依赖性。
  • 转到angularAMD获取项目种子。设置它,运行它,玩它。
  • 提高您对两者初始状态的了解。
  • ...
  • 利润!

P.S。仅供参考。一年前,我开始使用requireJS和angular。就像你一样,我得到了一大堆知识。这些是我试图理解它们的。花点时间,这不像使用jquery可以在一两天内学习。即使对于一些JS专家来说,他们需要花费几个月才能对角度有信心(不计算将它与requireJS结合起来)。干杯!

答案 1 :(得分:0)

在main1.js中,您必须使用require([' angular'],function(){}来启动您的应用程序。

答案 2 :(得分:0)

要求JS将为您提供包依赖项管理器,连接器/ uglifier,javascript文件加载器和注入器。要求JS注入器用于注入类,而Angular用于注入实例。

最大的好处是RequireJS将通过管理负载和运行时依赖性来加速您的应用程序。它对大型SPA有用。

您可以使用" define"定义所有依赖项来设置文件结构。要执行的功能,您需要使用"要求"。

这是一段有用的视频:

https://www.youtube.com/watch?v=4yulGISBF8w&index=1&list=PLgVbnDyASc1qDAam3Fe0f-u6u9MYL6pC8