问题标签 [requirejs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - RequireJS 的依赖注入
我可以拉伸多少 RequireJS 来为我的应用程序提供依赖注入?例如,假设我有一个想要成为单身人士的模型。不是自我执行的 getInstance() 类型的单例中的单例,而是上下文强制的单例(每个“上下文”一个实例)。我想做类似...
并让 mymodel 成为 MyModel 类的一个实例。如果我要在多个模块中执行此操作,我希望 mymodel 是相同的共享实例。
我通过制作这样的 mymodel 模块成功地完成了这项工作:
这种类型的用法是预期的和常见的,还是我在滥用 RequireJS?有没有更合适的方法可以使用 RequireJS 执行依赖注入?谢谢你的帮助。仍在努力掌握这一点。
backbone.js - 使用 Backbone.js 路由器浏览使用 require.js 模块化的视图
我使用 require 将我的视图和路由器分成单独的文件。然后我有一个 main.js 文件来实例化路由器,并呈现我的默认视图。
我的路由器有视图('View/:id')和编辑('Edit/:id')作为路由。在 main.js 中,当我实例化路由器时,我可以硬编码 router.navigate('View/1', true) 并且导航工作正常。在我的视图文件中,当我单击编辑链接时,我想调用 router.navigate('View/' + id, true),但我不确定我应该如何执行此操作。
我已经成功调用 Backbone.history.navigate('View/' + id, true),但我觉得我不应该依赖全局 Backbone 对象。
我尝试将 ({ router: appRouter }) 传递给我的视图,以便我可以使用 this.options.router.navigate(),但这对我不起作用。
如果您好奇,这里有一堆来自我的应用程序的代码:
路由器:
看法:
javascript - BackboneJS 站点结构
好的,我正试图了解整个backboneJS的事情。我知道您必须将您的网站分成模块并将每个模块分解为模型、集合和视图,如本示例中所述。
我的 JS 文件结构目前如下所示:
我有两个问题:
是否应该从BackboneJS控制所有应用程序逻辑?如果不是,那么这个单独的逻辑应该驻留在我的应用程序结构中的什么位置?当然骨干网无法控制您的所有客户端活动。不涉及任何集合的活动呢?
在使用 BackboneJS 时我是否应该使用RequireJS来管理模块?我找到了这个例子,但它似乎使已经令人困惑的 Backbone 概念更加复杂。
我即将着手开发一个非常繁重的 javascript 应用程序,并且真的想在我的代码开始流行之前把它做好!
node.js - 通过 msbuild 的 Require.js 优化器不起作用,但直接在命令行上可以
在我的代码中,以下命令在 powershell 提示符下执行
工作正常并输出以下内容
通过 msbuild 我得到以下信息
有任何想法吗?
requirejs - 对于 AMD 模块,何时(或为什么)可以在 define() 中使用 require()?
我对 AMD 模块(例如使用 RequireJs 或 curl.js)的理解是:
require()
用于异步加载不同的模块,并在加载时执行回调 fn。
并且要定义一个模块,您将有单独的脚本使用define()
但是我已经看到一些模块require()
在它们的函数定义中使用,例如
但是我觉得这很令人困惑,因为我会认为如果一个模块具有依赖关系,那么它们应该通过主define([dependancies], fnDefinition)
函数传递,而不是require()
按照上面的示例在其中传递。
这背后有什么原因吗?
backbone.js - bone.js - 在需要时使用 require.js 加载 .js 文件
我发现了有关如何使用 require.js http://backbonetutorials.com/organizing-backbone-using-modules/组织文件和加载文件的有趣链接,我对该示例的唯一问题是它们在开始时加载了所有内容甚至是异步的。我想知道是否可以仅在需要时加载 .js 文件...例如,如果我单击项目列表(http://backbonetutorials.com/examples/modular-backbone/#/projects),它会检查哪个我们当前所在的 url,然后加载 projects.js 和 list.js ......浏览器,适用于所有路由器。
requirejs - AMD(特别是 RequireJs)如何处理跨多个模块的依赖关系
我有调用 require() 的主要初始化脚本,其中一个依赖项是实用程序框架,但我通过 require() 指定的其他一些模块本身也将此框架定义为依赖项。
例如(init.js):
然后在'module-a'中我有:
那么 AMD/RequireJs 是如何处理这种情况的,它会两次加载同一个框架吗?
任何帮助表示赞赏。
亲切的问候,马克
jquery - 我的 RequireJS 依赖链有什么问题?
我刚刚开始使用 RequireJS,看来我没有正确表达我的依赖关系。我正在尝试映射一个相当简单的依赖链:
KnockoutJS
取决于jquery-tmpl
取决于jquery
我试图不使用require-jquery
. 在我的 HTML 中,我这样做:
我的main.js
:
我的require-jquery-tmpl.js
:
我的require-knockout.js
:
最后,myApp.js
:
我看到的是,knockout-1.2.1.js 在 jquery-tmpl.js 之前被加载和评估。console.log
s 显示init tmpl
发生在 之前,init ko
因此 RequireJS 回调以正确的顺序触发。但是,我在 Knockout 中添加了一些调试日志,我可以看到它在init tmpl
发生之前得到了评估。
结果,当我尝试时ko.applyBindings()
,它抱怨找不到 jQuery 模板。有趣的是,如果我手动告诉 KO 在回调中注册默认模板引擎,它工作正常,一切都很完美。但是,我认为这只是掩盖了核心问题。
为什么 RequireJS 在评估 Knockout 之前不等到 jquery-tmpl 被加载?
css - RequireJS:加载模块,包括模板和 CSS
在玩过 AMD/RequireJS 之后,我想知道加载 UI 模块(包括模板和 CSS)是否是个好主意,这样它们就完全独立于网页。
听起来不错,但我还没有看到这在野外实现,所以可能存在陷阱。
考虑一些具有以下结构的 UI 模块:
所有东西都在一个文件夹中。看起来很不错。
main.js 中的模块看起来像这样:
现在的问题是:
- 我错过了什么吗?
- 是否有任何插件/概念如何以“标准”方式实现这一目标?
- RequireJS 优化器是否能够在这里处理 CSS 部分,比如像处理 JS 部分一样连接/缩小样式表?
- 对此有何看法?是好是坏?