gpt4 book ai didi

javascript - RequireJS 如何决定运行什么和加载什么?

转载 作者:行者123 更新时间:2023-11-30 17:36:10 25 4
gpt4 key购买 nike

我正在使用 RequireJS 运行一个 EmberJS 应用

在我的 routes.coffee 文件中,我正在定义我的路由:

define ['jquery'
'ember'
'_'
'cs!myapp/myapp'
"cs!myapp/routes/index_route"
], ($, Ember, _, MyApp, IndexRoute) ->
alert "Inside myapp route"
MyApp.Router.map () ->
@resource "play", path: '/play', () ->
@resource "myapp", {}, () ->
@resource "games", {}, () ->
@route "next"
@resource "frames", {}, () ->
@route "commercial"
@resource "trivia", {}, () ->
@route "commercial"
@route "start"
@route "howItWorks"
@route "goodbye"
@route "readyToStart"
@route "noContent"

MyApp.IndexRoute = IndexRoute

具体来说,据我所知,这是一个 define 而不是 require,所以它不应该执行该代码。但是警报消失了。那么发生了什么?

最佳答案

的确,您在答案中显示的 define 不会立即调用您提供给它的工厂函数。 (工厂函数是您给 define 的回调。)但是,routes.coffee 中的 alert 将在需要时立即调用routes.coffee 直接或间接。如果 routes.coffee 模块出现在 require 调用或 define 调用的依赖列表中,则它是必需的。

请注意,可能需要一个模块而不使用它。 RequireJS 不关心模块是否被使用。它只关心是否需要一个模块。因此,像 require(['foo']) 这样的调用将需要模块 foo 并导致其工厂函数被调用,即使它未被使用 在此 require 调用中。

关于javascript - RequireJS 如何决定运行什么和加载什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21998518/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com