如何在使用 AMD 时在 Backbone.js 中加载引导模型 (require.js)

2023-12-12

Backbone.js 文档建议以这种方式加载引导模型:

<script>
var Accounts = new Backbone.Collection;
Accounts.reset(<%= @accounts.to_json %>);
var Projects = new Backbone.Collection;
Projects.reset(<%= @projects.to_json(:collaborators => true) %>);
</script>

但这是一个不能使用的模式AMD 方法(使用 require.js)

唯一可能的解决方案是声明存储 JSON 数据的全局变量并稍后在相关初始化方法中使用该变量。

有没有更好的方法这样做(没有全局变量)?


这就是我们如何以不污染全局命名空间的方式引导数据。相反,它专门使用 require.js。它还可以帮助您根据模板中的变量提供初始应用程序配置。

在您渲染的页面中

<script src="require.js"></script>
<script>
define('config', function() {
  return {
    bootstrappedAccounts: <%= @accounts.to_json %>,
    bootstrappedProjects: <%= @projects.to_json(:collaborators => true) %>
  };
});
</script>
<script src="app.js"></script>

globals.js

该文件检查配置并使用返回的任何数据扩展自身

define([
  'config',
  'underscore'
], function(config) {

  var globals = {
  };
  _.extend(globals, config);
  return globals;

});

config.js

如果您希望能够加载应用程序,无论您是否已定义,则需要此文件config在页面中。

define(function() {
  // empty array for cases where `config` is not defined in-page
  return {};
});

app.js

require([
  'globals',
  'underscore',
  'backbone'
], function(globals) {

  if (globals.bootstrappedAccounts) {
    var accounts = new Backbone.Collection(globals.bootstrappedAccounts);
  }
  if (globals.bootstrappedProjects) {
    var projects = new Backbone.Collection(globals.bootstrappedProjects);
  }

});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在使用 AMD 时在 Backbone.js 中加载引导模型 (require.js) 的相关文章

  • 根据嵌套值使用数组过滤对象数组

    我正在尝试根据某些嵌套对象过滤数组 我准备了一些Fiddle http jsfiddle net NZnN2 249 输入数组如下所示 let arrayOfElements name a subElements surname 1 sur
  • 如何制作像Stackoverflow一样的可折叠评论框

    我正在构建一个网站 并且有一个状态更新列表 我希望允许用户为列表中的每个项目撰写评论 但是我正在尝试实现一个类似于堆栈溢出工作方式的用户界面 特别是可折叠的评论表单 列表 用户在其中单击对列表中的特定状态更新添加评论 并且在列表中的该项目下
  • 如何在 Chrome 中实现抓取光标图标?

    我知道可以在 Chrome 中使用抓取光标图标 当然是在 Gmail 中 但我不知道如何在我的代码中实现它 我已经尝试过 在CSS中 body cursor grab body cursor webkit grab body cursor
  • 一个 Next.js 路由中的两个不同子域

    我想使用构建一个新平台Next js https nextjs org React js https reactjs org and 反应路由器 https reacttraining com react router web guides
  • 检测 iframe 内容加载失败

    我可以使用以下命令检测 iframe 的内容何时加载load事件 不幸的是 就我的目的而言 这有两个问题 如果加载页面时出现错误 404 500 等 则永远不会触发加载事件 如果某些图像或其他依赖项加载失败 则会照常触发加载事件 有什么方法
  • React:React 如何确保在浏览器有机会绘制之后调用 useEffect?

    useLayoutEffect 的文档说 useLayoutEffect 内计划的更新将被刷新 在浏览器有机会绘制之前同步进行 useEffect 的文档说 与 componentDidMount 和 componentDidUpdate
  • JointJS - 处理链接删除点击

    创建链接后 将鼠标悬停在其上会显示红色 X 以将其删除 单击此按钮将触发一系列事件 通过订阅 全部 活动收集 单元格 向下指针 链接 向下指针 cell pointermove x5 似乎可疑 单元格 指针向上 在浏览了文档并花费了太长时间
  • 排除 requirejs 模块中所有以 x 开头的内容

    I am 编译 将一些文件放入一个 requirejs 模块中 我有这样的配置 paths lib lib angular lib angular modules name myApp exclude lib jquery lib angu
  • NodeJS 无法加载 css 文件

    所以我正在尝试制作一个 NodeJS 服务器 并且我尝试保留尽可能少的附加组件 但是 我遇到了一个问题 我似乎无法加载任何内容CSS我调用的文件HTML文件 该调用似乎确实由服务器处理 但它不会显示在浏览器中 My 网络服务器 js fil
  • 如何在参数上使用 .reduce() 而不是特定的数组或对象?

    我想定义一个函数 flatten 将多个元素展平为一个数组 我知道以下是不可能的 但本质上我想这样做 var flatten function var flattened arguments reduce function acc elem
  • t /= d 是什么意思? Python 和错误

    t current time b begInnIng value c change In value d duration def easeOutQuad swing function x t b c d alert jQuery easi
  • 全局定义的 AngularJS 控制器和封装

    根据 AngularJS 的教程 控制器函数仅位于全局范围内 http docs angularjs org tutorial step 04 http docs angularjs org tutorial step 04 控制器函数本身
  • CryptoJS 和 Pycrypto 一起工作

    我正在使用 CryptoJS v 2 3 加密 Web 应用程序中的字符串 并且需要在服务器上使用 Python 对其进行解密 因此我使用 PyCrypto 我觉得我错过了一些东西 因为我无法让它工作 这是JS Crypto AES enc
  • 获取 2 个日期之间的月份名称

    我有两个约会from and to 我想获取这两个日期之间的所有月份名称 以下是我的代码 var monthNames January February March April May June July August September
  • 如何在 JavaScript 中设置/更新 String 对象的值

    我有一个具有一些属性的对象字符串对象 var obj foo new String bar 我在用字符串对象因为我需要在对象上存储额外的子属性 同时仍然能够获取字符串值 obj foo baz baz obj foo gt bar 我觉得问
  • 使用 JavaScript 从 URL 变量读取来加载不同的 CSS 样式表

    我试图在我的 WordPress 博客上使用两个不同的样式表 以便在通过 Web 访问页面时使用一个样式表 而在通过我们的 iOS 应用程序访问博客内容时使用另一个样式表 现在 我们将 app true 附加到来自 iOS 应用程序的 UR
  • 响应式菜单:悬停子菜单显示错误

    简而言之 我根据教程创建了一个响应式菜单 当您将鼠标悬停在投资组合按钮上时 菜单应该显示子菜单 而在移动模式下 您需要按该按钮才能显示子菜单 效果很好 问题是该教程有一个错误 如果您在桌面模式下按组合按钮 子菜单将不会再次显示 除非您按 单
  • jQuery fadeOut 一个 div,fadeIn 另一个 div 在其位置

    我正在尝试一个简单的 jQuery 脚本来淡出一个 div 并淡入另一个 div 但由于某种原因 第一个 div 永远不会淡出 这可能是代码的一个明显问题 但我似乎无法弄清楚 div div div div
  • 从 Node.js 调用 execl、execle、execlp、execv、execvP 或 execvp 的方法

    POSIX 系统公开了一系列exec函数 允许人们将可能不同的东西加载到当前进程中 保留打开的文件描述符 进程标识符等 可以出于多种原因执行此操作 在我的情况下 这是引导 我想更改我自己的进程的命令行选项 然后在现有进程上重新加载它 这样就
  • 使用 stopPropagation() 处理 React 事件委托

    我有一个 React 项目 应该可以放置在任何网站上 我的想法是 我托管一个 javascript 文件 人们放置一个具有特定 ID 的 div 然后 React 在该 div 中进行渲染 到目前为止 除了点击事件之外 这是有效的 这些事件

随机推荐

  • 如何防止强制推送到 GitHub Wiki 存储库?

    对于那些不知道的人来说 每个带有 wiki 的 GitHub 存储库都会自动拥有一个 wikirepo 它只是一个专门用于 wiki 内容的常规 git 存储库 前任 https github com junegunn fzf wiki 您
  • Azure 数据工厂:对于特定属性,每个 item() 值不存在

    我的每个活动都有一个存储过程 SP 其中我显然使用 item 输入值 现在假设 SP 的输入值为 item a item b 和 item c 问题 对于 foreach 的某些迭代 item b 不存在 这是预期的 那么我应该如何在存储过
  • AngularJS [$injector:unpr] 未知提供者:dataProvider <- data <- PageCtrl

    我看过其他答案 但到目前为止没有任何帮助我 我在文件中使用以下代码时收到此错误 angular module myApp page ngRoute config routeProvider function routeProvider ro
  • 发现元素可见后无法使用递归来定位元素

    我的问题 我正在尝试使用页面对象中的部分来单击 Nightwatch 下拉列表中的选项 我不确定这是否是部分声明的问题 或者我遗漏了一些与范围相关的内容 问题是它发现该元素可见 但是当它尝试单击时会抛出错误 无法使用递归找到它 我可以尝试使
  • R:Git + Shiny服务器自动化部署

    我有一个 Shiny 服务器安装 以及一个适用于我的 Shiny 应用程序的 Git 存储库 我开发了 Shiny 应用程序并将其推送到 Git 存储库 并且我希望 Shiny 服务器从 Git 存储库加载该应用程序的最新版本 我怎样才能做
  • IE Flexbox justify-内容中心溢出问题

    在 IE11 上查看以下演示时 存在内容显示右对齐并被推到屏幕之外的问题 Codepen 演示 以下是证明内容中心合理性的代码 search results display webkit box display webkit flex di
  • 尝试禁用浏览器的后退按钮

    我写了两个 HTML 文件 登录 html a href Home html Next Page a 首页 html a href Login html gt gt Prev Page a 我正在尝试禁用浏览器的后退按钮 如果我在 c
  • 绘图中的注释自动放置

    我有代码可以轻松地自动处理着色和绘制多个图 对我来说 我想让注释变得更容易 goal 如果注释 xy 与前一个注释冲突 请向上移动 直到与其他注释不发生冲突 如果有一个功能已经能够实现这一点 那将是一个梦想 但我找不到 否则 列出注释并在坐
  • 如何从流中准确读取一个字符?

    我有一个带有一些文本数据的流 可以是 ASCII UTF 8 Unicode 编码是已知的 我需要从流中准确读取一个字符 而不再前进流位置 StreamReader 是不合适的 因为它会积极地从流中预取数据 Ideas 如果您想一次一个字节
  • 正则表达式匹配确切的数字,如果它存在于字符串中则不匹配

    我的正则表达式 3 b Matches 103 134 256 3 我希望它只匹配唯一的 3 数字 3 将是一个动态数字 正则表达式必须匹配该确切数字 而不是其他数字 如果该数字存在于另一个数字 如 103 中 则它不能匹配 那么它不应该匹
  • 对 NHibernate 缓存搜索的影响,其结果包括映射为公式的计算值(例如排名)

    当在 NHibernate 中使用公式定义计算属性时 当公式根据查询限制 尤其是查询缓存 改变其结果时 会产生什么影响 更具体地说 请考虑以下简单的 C 类 public class Entity public Entity public
  • 使用 Linux binutils 设置 ELF 映像基地址的优雅方法?

    对于个人项目 我需要编写一个在非默认内存地址加载的可执行文件 从这个问题 我知道我可以设置 ELF 的入口地址并手动修改节地址 以便可执行文件有效地基于我选择的某个地址 然而 答案表明 只有当我不进行 glibc 初始化 这个项目需要它 时
  • 无序线程问题

    我问过关于锁定的问题here人们回答说我的锁实现没有问题 但我发现了问题 这是相同的锁实现 我得到了奇怪的结果 我希望看到数字从 1 开始 但它是从 5 开始 示例如下 class Program static object locker
  • asp.net mvc 不断用 .wml 覆盖 text/html 内容类型

    我正在开发一个可以在移动 手机 设备上查看的网站 我只是使用纯 HTML 4 01 没有什么特别的 除了诺基亚 Series 40 第 1 5 版之外 这些页面在我们测试过的所有移动浏览器上都呈现良好 仔细观察 IIS 似乎会自动渲染内容类
  • BitBucket - 直接添加到开发分支而不是主分支

    我们正在将 SCM 更改为 BitBucket 目前我们使用 Clearcase SCM 我们在不同阶段 流中拥有代码 开发 UAT 和生产 其中开发具有开发人员当前正在处理的代码 UAT 已完成由 BP 测试的更改 而生产具有部署到生产的
  • 为文本区域内的线条着色

    有没有办法让textarea显示颜色的线条 我想要实现的是每隔一行都着色 即白色 灰色 白色 灰色 白色 灰色 以获得更好的可读性 用户应该写很多东西 比如 输入名称 每一个都从新行开始 无论如何 我确实使用 jQuery 所以如果他们为此
  • 带返回值的跨域弹窗

    这是设置 我在两个不同的域上有两个网站 www website1 com www someotherwebsite com 这就是我想做的 当用户开机时www website1 com然后单击一个链接 我想要一个弹出窗口显示www some
  • 使用 gdb 在多屏幕窗口中调试 MPI

    如果我有一个 MPI 程序 想要使用 gdb 进行调试 同时能够查看所有单独进程的输出 我可以使用 mpirun n
  • DbContext.OnConfiguring 没有被调用并且在 ASP.NET Core 中表现得很奇怪

    在我的 asp net core 项目中我有一个ReadingContext类派生自DbContext 根据文件OnConfiguring应该为每个实例调用DbContext即被创建 但就我而言 仅当我在调试时检查实例时才会调用它 我里面有
  • 如何在使用 AMD 时在 Backbone.js 中加载引导模型 (require.js)

    Backbone js 文档建议以这种方式加载引导模型 但这是一个不能使用的模式AMD 方法 使用 require js 唯一可能的解决方案是声明存储 JSON 数据的全局变量并稍后在相关初始化方法中使用该变量 有没有更好的方法这样做 没有