Backbone:视图内的视图列表

2023-12-05

让我先展示我需要什么,以便您能够理解我的问题。 我有一个联系人视图,例如:

ContactView = Backbone.View.extend({
    template: _.template("Name: <%= name %>
                          E-mail: <%= email %>
                          Phones
                          <%= label1 %> - <%= number1 %>
                          <%= label2 %> - <%= number2 %>"),
    render: function() {
       var contact = this.template(this.model.toJSON());
       this.$el.html(contact);
    }
});

到目前为止一切顺利,问题是电话部分是一个列表,我的模型包含一系列电话,我需要将其动态地放入该模板中。

我的想法是创建另一个模型并为此查看 Phone 和 PhoneView。 然后在 ContactView 中我将创建一个方法 render_phones,例如:

render_phones: function() {
    var phones = this.model.get('phones');
    var phones_str = "";
    for (var i in phones) {
        var phone = new Phone(phones[i]);
        var phoneView = new PhoneView({model: phone});
        phones_str += phoneView.render();
    }
    return phones_str;
}

我将 ContactView 模板更改为:

template: _.template("Name: <%= name %>
                      E-mail: <%= email %>
                      Phones
                      <%= phones %>"),

但是如何让我的渲染方法获取渲染的电话列表并将其放入模板中?

我找不到处理这种情况的模式。而且代码开始看起来不太好。

ps:这只是一个例子,我的应用程序还有其他几个部分需要这个,一个需要生成列表中内容的子视图的视图。


看起来您正在使用 underscore.js 来渲染模板,underscore.js 提供了一种方法渲染集合在模板内(看第二个例子)。例如

template: _.template("Name: <%= name %>
                          E-mail: <%= email %>
                          Phones
                <% _.each(phones, function (phone) { %>
                 <%= label %> - <%= number %>
                <% }); %>"),

您还可以为每个模型渲染单独的视图,并在同一渲染模型中修改el在那里渲染它,但除非你需要视图(例如内容会改变或者你正在监听事件),否则这样做可能不值得。这是一个如何实现这一目标的示例

render: function () {
  this.$el.html(this.model.toJSON());
  _.each(this.model.get('phones'), function(phone) {
    this.$el.find('.phoneArea').append(new phoneView({model: phone}).render().el));
  },this);
  return this;
}

另外,如果您要走这条路线,请注意,缓存视图可能是值得的,但同样,如果您需要的只是渲染内容,那么只需将电话号码保留为数组并将其渲染在模板。

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

Backbone:视图内的视图列表 的相关文章

  • Backbone.Marionette 在路由更改时更改区域

    我的应用程序有一个主区域 有时主区域中会有一些应可通过 URL 访问的子区域 主要区域内容由应用程序路由器的功能更改 因为他知道主要区域 但是子视图中的临时区域呢 例如网址 docs将显示文档链接列表以及 doc id应在列表旁边显示文档的
  • 使用主干渲染引导模式

    我认为代码可以更好地解释我的问题 风景 App Views ErrorModal Backbone View extend template window template errorModal render function this e
  • 在backbone.js 中缓存集合?

    确保我的集合保持缓存并仅获取一次的最佳方法是什么 我应该实现某种缓存层吗 我应该分享Collection变量到需要的地方 我可以信任 jQuery 的 AJAX 设置吗 ajaxSetup cache true 现在看起来的基本集合 the
  • 覆盖骨干模型更改事件

    我认为我想做的事情很简单 我只是不知道该怎么做 当我的模型属性之一发生更改以便将一些数据传递给事件处理程序时 无论更改是值的增加还是减少 我想触发我自己的事件 基本上我希望我的处理程序在视图中执行此操作 handler function i
  • Javascript 对象值的 Sum 数组

    我认为这是一个令人惊讶的常见和简单的问题 但我似乎找不到我要找的东西 如果我有 var array a 4 b 5 d 6 a 4 c 5 c 4 我如何对要得到的对象求和 a 8 b 5 c 9 d 6 使用下划线 lodash 或相当快
  • backbone.js - 如何在视图之间进行通信?

    我有一个带有多个backbone js 视图的单页Web 应用程序 观点有时必须相互沟通 两个例子 当有两种方式视图同时以不同方式呈现集合时 并且对一个视图中的项目的点击必须转发到另一个视图 当用户转换到流程的下一个阶段时 第一个视图将数据
  • 如何从 Backbone 集合中提取多个属性?

    我试图从 Backbone 集合中提取多个属性 但它返回undefined 收藏 id 1 name raju age 23 sex male hobbies id 2 name ramesh age 43 sex male hobbies
  • 对周围的所有 Node JS 框架/库等感到困惑 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我感觉有点困惑 有很多 Node js 相关 东西 的框架 有人能给我一个概述吗 以下库 框架 其他内容如何相互关联 交互 其中包括什么或
  • 如何使用 lodash、underscore 或 bluebird 同步迭代数组 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我有一个数组 其中每个索引处包含文件名 我想下载这些文件一次一个 同步 我知道关于 Async 模块 但我想知道是否有任何功能Lodash
  • 从对象中取出具有无效(NaN、空白等)值的键的最佳方法?

    我有一个供用户填写的简短搜索表单 将有多个搜索查询进入 MongoDB 该表单创建一个名为的变量searchParams可能看起来像这样 var searchParams city Springfield bedrooms 3 bathro
  • 为什么名称为“下划线”或“lodash”?

    为什么这些库以 命名 其背后是否有某种意义或者原因是 只是因为我们可以 据我所知 下划线 and lodash做很多类似的事情 此外 这两个名字都指向 甚至它们的变量名也是 那么是否存在某种关系 这些库的工作 或者它只是一个名字 Lodas
  • Socket.IO - 开放连接是一个问题吗?

    我目前正在与DerbyJS http derbyjs com 因为它促进了干净 干燥的客户端 服务器代码 附带好处 大多数人使用该框架的主要原因 是它使用 Socket IO 来创建实时应用程序 在这种情况下 我不need实时 但这是一个很
  • 使用 Backbone.js 和 Rivets.js 的简单示例

    我正在寻找一个非常简单的例子 例如之间存在双向绑定span文本和一个input使用 Backbone js 的元素和铆钉 js http rivetsjs com 也许 Rivets js 文档中有一个 但我找不到它 有什么帮助吗 假设您的
  • backscore.js 和 underscore.js CDN 推荐吗?

    是否有backbone js和underscore js的CDN源可以在我们的项目中使用 http www cdnjs com http www cdnjs com托管许多不太流行的 JavaScript 框架 包括 主干 js quest
  • Backbone.js 应用程序可以逐步增强并可供搜索引擎抓取吗?

    我需要为我的下一个项目实现一个 MVC JavaScript 框架 但它既是一个网站 又是一个 Web 应用程序 是否可以公开数据服务器端 然后解析 URL 以显示 JS 版本 我计划使用 Rails 作为服务器端代码 我写了一个关于这个主
  • 模拟 python 中 findWhere() 的行为

    下划线有一个方便的小功能 查找位置 http underscorejs org findWhere它可用于在列表中查找特定结构 例如 myList name Thor name Odin name Freya name Skadi find
  • Backbone Marionette,复合视图初始化两次

    我正在使用一个复合视图 它的 el 上调用了 dialog 然后 复合视图列出集合中的项目 现在我尝试了多种方法来渲染集合项 在将其附加到视图之前和之后从复合视图外部获取 在视图内部获取 从我的服务器脚本预加载集合等 一切似乎都有效 但出现
  • 将 memoize 函数与 underscore.js 一起使用

    我正在尝试使用 ajax 调用缓存结果memoize函数来自Underscore js 我不确定我的实施情况 以及如何使用密钥检索缓存的结果数据 下面是我的实现 JavaScript 代码 var cdata http get HOST U
  • 使用 Node.js 的前端 javascript 框架 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 谷歌地图通过骨干javascript返回div标签但不显示

    我已经开始使用地理定位 我可以获得坐标等 我想在地图中显示它 但是当我将地图返回到 div 时 什么也没有显示 现在我查看了 div 地图正在返回 但只是不可见 这是有问题的 div 请注意 这似乎只是一个小地图的链接 a style di

随机推荐

  • Android Studio 项目的 .gitignore 中应该包含哪些内容?

    我的文件中应该包含哪些文件 gitignore对于 Android Studio 项目 我见过几个例子 全部包括 iml但 IntelliJ 文档说 iml必须包含在您的源代码管理中 更新至Android Studio 3 0请在评论中分享
  • 如何得到拓扑排序的所有解

    大家好我正在尝试解决这个问题我意识到它想要获得拓扑排序问题的所有解决方案 我知道如何只获得一种可能的解决方案 这是我的代码http ideone com IiQxiu static ArrayList
  • 在没有互联网访问的情况下安装 pythonnet

    我正在尝试在无法访问互联网的计算机上安装 pythonnet 在连接的机器上 我从 Github 下载了 pythonnet master zip 从 pypi 下载了 pythonnet 2 4 0 tar gz 当我尝试时pip ins
  • 防止 Visual Studio Code 中的自动完成

    我正在使用新的视觉工作室代码 In a SQL file any time you type case it automatically adds end as if you were building a case block Even
  • 向 django 添加自定义语言

    我正在将我的网站翻译成欧盟的 24 种语言 其中包括 Malti 语言 该语言未在 django 默认支持的语言中列出 我想知道是否有一种方法可以向 django 添加自定义语言 以便它可以与本机 i18n url 函数一起使用 Thank
  • 在 IE 中 contenteditable div 的输入框中插入文本

    我正在尝试在输入框中插入文本contenteditable分区当我点击输入框时 光标不出现 双击输入框后可以插入文本 这个问题出现在IE中 div div
  • 图层中的 Alpha 检测在模拟器上正常,而不是在 iPhone 上

    首先 检查一下这个非常方便的扩展CALayer来自其他地方的SO 它可以帮助您确定图层内容中的点是否已分配CG图像参考是否透明 注意 不能保证图层的contents具有代表性或回应 就好像它是一个CG图像参考 当然 这可能会对更广泛地使用上
  • 如果函数声明时没有使用“const”关键字,函数调用签名会出错

    我是 TypeScript 新手 正在学习中呼叫签名 如果我将函数存储为let or const关键词 像这样 呼叫签名 type Foo desc string arg string void 如果我创建一个函数并使用它存储它let or
  • 玩框架路由麻烦(400错误请求)

    我在向 play 框架发送 POST 时遇到问题 这甚至可能与 Play 相关不如与 HTTP 相关 ajax type POST url http localhost 9000 start data myJson JSON stringi
  • Ajax 请求在多次点击时附加

    如果用户填写了一些无效数据 则会触发 ajax 请求并显示错误消息 现在 当用户再次更正数据 或再次输入无效数据时 会触发 2 个请求 下一次会触发 3 个请求 并且会继续累加 这可能是因为 parsley js 库的原因 如果我删除欧芹代
  • 从直方图中获取值或从迹线中获取值

    在情节中 我可以创建一个直方图 例如在此示例中 文档中的代码 import plotly express as px df px data tips fig px histogram df x total bill fig show whi
  • Close 从未被明确调用过

    我有一个来自 sqlite 数据库的列表视图 我在几个不同的点调用 fillData 来更新列表视图 private void fillData mDbHelper open Cursor c mDbHelper fetchAllNotes
  • centos中imagemagick安装问题

    我正在尝试通过以下网址在我的服务器 centos 7 1 最低 上安装 imagemagick imagemagick安装步骤 在步骤 1 中出现此错误 Loaded plugins fastestmirror Loading mirror
  • 休眠正则表达式

    我正在尝试构建一个可以通过 HQL 正则表达式关键字进行搜索的 API 编辑 在 HQL 中执行正则表达式搜索的最佳方法是使用条件 Restrictions like 或 Restrictions ilike public static L
  • Android:在 OnItemClick 后替换 GridView 数组中的图像

    我有一个网格视图 大致如下所示 每个图像最终都会有所不同 当用户单击数组中的任何图像时 我希望该图像更改为 如果他们再次点击 它会变成这样 然后再次单击将恢复为 到目前为止 这是我的代码 只是使用 Imageadapter 创建一个 Gri
  • PHP:在 XML 中搜索字符串

    我尝试下面的搜索代码 但它只显示第一个子节点 我的代码中缺少什么吗 目录 xml
  • 使用 WCF 数据服务进行分页

    我的问题是关于如何使用 WCF 数据服务处理分页 我想要使 用它的方式是执行查询 传递页面大小和当前页面 并返回该查询的结果以及分页信息 例如总页数 当前页码和页面大小 客户端 这是另一个将结果转换为 JSON 供使用该结果的移动应用程序使
  • 连接向量中的相邻字符串

    Given qz lt quantile c 1 2 3 4 5 6 7 8 9 10 c 0 0 0 2 0 4 0 6 0 8 1 0 我想从分位数创建一个标签向量 目前 我这样做 zlab lt c paste paste sprin
  • 从另一个 2D 数组的元素中过滤 2D 数组

    我有两组数字元素存储为二维数组 使用以下方法从列中获取值 getValues 一个是完整列表 另一个是部分列表 我想要一个返回完整列表减去部分列表的函数 The partialListArr可能包含重复项 这fullListArr做 不是
  • Backbone:视图内的视图列表

    让我先展示我需要什么 以便您能够理解我的问题 我有一个联系人视图 例如 ContactView Backbone View extend template template Name E mail Phones render functio