gpt4 book ai didi

java - RequireJS 如何处理模块?

转载 作者:太空宇宙 更新时间:2023-11-04 07:04:26 25 4
gpt4 key购买 nike

我对RequireJS的理解是,如果你从模块A请求模块B,然后模块B请求模块C,模块C将能够访问模块A。这是正确的吗?

如果没有,我如何让模块 C 使用 A?

这是我的问题:我有一个 Backbone 模型帐户、一个名为 Core 的咖啡文件以及 HTML 中的 require 脚本标记使用的 cmsmain 文件。cmsmain.coffee

requirejs.config
baseUrl: 'assets/javascripts/cms'
paths:
jquery: '../lib/jquery'
backbone: '../lib/backbone'
underscore: '../lib/underscore'
AccountModel: 'model/account'


require ['core', 'jquery', 'underscore', 'backbone'], (Core, $, _, Backbone) ->
Core.Start()

核心.咖啡:

define () ->
# Declare the app namespace
Core = window.Core =
Classes:
Models: {}
Collections: {}
Controllers: {}
Views: {}
Rendered:
Models: {}
Collections: {}
Controllers: {}
Views: {}
Templates: {}
Routes: {}
Start: ->
alert("Started")

return Core

model/account.coffee

# Account Model
define () ->
class Core.Classes.Models.Account extends Backbone.Model

initialize: ->

login: (username, password) ->

一切正常,直到我需要帐户模型,然后我得到:

Uncaught ReferenceError: Core is not defined 

即使我在帐户模型中需要 Core 之后,我得到:

Uncaught TypeError: Cannot read property 'Classes' of undefined

这两个错误都是由帐户模型生成的

最佳答案

您需要使用 RequireJS 依赖项返回的值(CoffeeScript 近似...):

define ['core'], (Core) -> 
class Core.Classes.Models.Account extends Backbone.Model

initialize: ->

login: (username, password) ->

否则,RequireJS 在尝试访问 Classes 属性之前不会等待 Core 加载。

例如参见 https://github.com/davidsulc/structuring-backbone-with-requirejs-and-marionette/blob/master/assets/js/apps/contacts/edit/edit_controller.js

关于java - RequireJS 如何处理模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21621922/

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