如何从 Backbone Marionette 中的项目视图实例访问复合视图

2024-01-22

基本情况是这样的:

我有一个复合视图和一个项目视图。我构建了 Composite 视图,传递给它一个模型和一个集合。模型数据用于填充复合视图的模板。集合数据用于填充复合视图的项目视图。

我想要做的是:在项目视图的模板助手中,我想访问复合视图的模型数据。我已经访问了项目视图的视图实例。我认为这可能会让我掌握复合视图,从那里我可以访问它的模型,但事实并非如此。

有没有一种方法可以做到这一点 - 从其项目视图实例之一访问复合视图实例?

Thanks

——贾斯汀·威利


如果您想访问父级的数据CompositeView你可以做很多不同的事情。

  1. 要么将该数据直接传递给ItemView通过itemViewOptions上的辅助函数CompositeView。注意:该选项已更改为childViewOptions在《木偶2》中。

  2. 直接在所有子视图上调用方法CompositeView并将您想要的任何内容传递到该方法中。

  3. 触发事件或监听事件ItemView.

这些选项都不会直接从子视图访问父视图,但应该执行您想要的操作。下面是如何使用这些方法中的每一种来传递的代码CompositeView的模型到儿童视图。

// Pass model into ItemView on init
var MyItemView = Backbone.Marionette.ItemView.extend({
  initialize : function (options) {
    this.parentsModel = options.parentsModel;
  }
});
var MyCompView = Backbone.Marionette.CompositeView.extend({
  itemViewOptions : function () { return { parentsModel: this.model }; }
  itemView : MyItemView
});


// Invoke function on ItemView, passing data in
var MyItemView = Backbone.Marionette.ItemView.extend({
  doSomethingWithParent : function (parentModel) {
    // do cool thing with parentModel
  }
});
var MyCompView = Backbone.Marionette.CompositeView.extend({
  itemView : MyItemView,
  onRender : function () {
    this.children.call("doSomethingWithParent", this.model);
  }
});


// Trigger event that ItemView knows about
var MyItemView = Backbone.Marionette.ItemView.extend({
  initialize : function () {
    this.listenTo(this, "special:event", function (parentModel) {
      // Do cool things
    });
  }
});
var MyCompView = Backbone.Marionette.CompositeView.extend({
  itemView : MyItemView,
  onRender : function () {
    this.children.each(_.bind(function (childView) {
      childView.trigger("special:event", this.model);
     }, this));
  }
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 Backbone Marionette 中的项目视图实例访问复合视图 的相关文章

  • Backbone - 从 API 获取 JSON 数据

    这几天我在玩Backbone 我想从 Twitter 搜索 API 接收一些数据 但我真的不明白它是如何工作的 这是我的代码 function Tweet Backbone Model extend Tweets Backbone Coll
  • 在Javascript中,这个下划线是什么意思?

    var Gallery Backbone Controller extend index null photos null album null subalbums null subphotos null data null photosv
  • Backbone.js 中的分页

    我知道有一个组件可以实现此目的 但根据我所看到的 您必须创建一个扩展组件的新集合 还有另一种方法可以在主干中进行分页吗 我所需要的只是一个上一个和下一个按钮 将每页的项目限制为 12 个 我一直在 javascript 上创建它 对于生产环
  • Knockback.js 生产准备好了吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如果用户尚未登录,我如何拒绝他们访问我的 Backbone 应用程序的部分内容?

    所以我有一个 Backbone 应用程序 网页主页 现在 如果您登录我的网站 我会使用数据库中的用户详细信息创建一个全局对象 但是 您仍然可以直接点击应用程序中的其中一条路线 我应该如何处理未 登录 的用户并将他们重定向到 您必须登录页面
  • 骨干木偶区域显示无渲染

    是否可以将已渲染的视图放入骨干牵线木偶区域而无需再次渲染 例如 region show myView This will call render on myView 我不希望该区域再次呈现我的视图 If I do region attach
  • 从 Backbone 检索 Rails/devise current_user

    我有一个应用程序 可以通过 Devise 管理 Rails 的注册 输入 退出 当我登录时 我被重定向到 Backbone 启动的 Dashboard index 我想以某种方式在 Backbone 中检索我的 current user i
  • 重新渲染子视图后,主干事件会多次触发

    我们有一个由侧边栏和几个子视图组成的主干视图 为简单起见 我们决定让侧边栏和子视图由单个视图管理render功能 但是 那click edit单击侧边栏项目之一后 事件似乎会多次触发 例如 如果我从 常规 开始并单击 edit then h
  • 类型错误:“未定义”不是函数(评估“sinon.spy()”)

    我正在尝试使用sinon js http sinonjs org 在测试骨干应用程序时 但不幸的是 由于错误 我无法使用间谍方法 TypeError undefined is not a function evaluating sinon
  • 主干表视图消耗行视图 - 如何构造?

    我有一组模型希望在表格视图中呈现 每个模型应由表中的一行表示 并且该行应使用模板生成 我应该能够将事件处理程序附加到该行 例如单击 在事件发生时发出有关与该行关联的模型的一些特定信息 我见过类似的事情的一种常见方法是将每一行分解到它自己的视
  • 使用 Backbone-Relational 实现多对多关系

    我有一个简单的应用程序 它定义了两个类 一个Person and a PersonGroup 其中存在多对多关系 一个人可以没有组 或者被分配到所有组 以及介于两者之间的任何组 backbonerelational org 上的示例建议对多
  • Backbone js 并使用 fetch() 用数据填充模型

    我正在 Backbone js 中工作 并尝试使用 fetch 用数据填充模型 问题是提取似乎有效 但我的模型没有填充数据 代码片段 Backbone emulateHTTP true Backbone emulateJSON true C
  • 需要帮助了解主干中嵌套视图的基础知识

    我一直在阅读有关backbone js 中嵌套视图的大量内容 并且了解其中的很多内容 但仍然令我困惑的一件事是 如果我的应用程序有一个 shell 视图 其中包含页面导航 页脚等子视图 这些子视图在使用应用程序的过程中不会改变 那么我是否需
  • 覆盖主干“设置”方法

    我想重写骨干集方法 以便每当我为骨干模型设置一个值时 都会调用在该属性上注册的回调 而无需检查该属性的相同先前值 var model Backbone Model extend defaults prop1 true var view Ba
  • 覆盖骨干模型更改事件

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

    我需要使用模板来渲染每个 ItemView var ItemView Backbone View extend className item template template itemTemplate html initialize fu
  • Backbone-relational 无法实例化两个 RelationalModel 对象

    我正在尝试实现 BackboneRelational 并不断获得 无法实例化多个 Backbone RelationalModel 每种类型都有相同的 ID class App Models User extends Backbone Re
  • backbone.js + require.js + 用户认证

    开始学习backbone js和require js 不确定如何通过用户身份验证构建 Web 应用程序的文件 看起来应该是这样的 On app init query server to check auth session state Q
  • 如何填充 Backbone.js 集合的 _byId 数组以便我可以在其上使用“get”?

    我有一个收藏 并且collection models返回模型数组 然而 当我打电话时collection get someId 这个id是模型的idcollection models数组 我得到undefined 看着collection
  • Backbone Marionette CompositeView 排序列表 - 在添加时呈现额外的模型

    这是小提琴 http jsfiddle net QhQ8D 10 http jsfiddle net QhQ8D 10 代码在下面 制作一个聊天应用程序 需要一个排序的 连接的用户列表 名称上带有比较器的图形集合连接到 CompositeV

随机推荐

  • 禁用Oracle中的所有表约束

    如何使用单个命令禁用 Oracle 中的所有表约束 这可以针对单个表 表列表或所有表 最好避免写出临时假脱机文件 使用 PL SQL 块 您可以从 SQL Plus 运行它或将其放入包或过程中 与 USER TABLES 的连接是为了避免视
  • nuget 更新后样式变得混乱。

    我更新了默认 MVC 应用程序的多个 nuget 包 但我的页面样式弄乱了 看起来正在加载部分样式 但我无法找出问题所在 提前致谢 更新前我的导航栏 更新后我的导航栏 很遗憾听到这个消息 我也遇到了同样的问题 也花了我很多钱 太令人沮丧了
  • 帮我推理 F# 线程

    在闲逛一些 F 通过 MonoDevelop 时 我编写了一个例程 它用一个线程列出目录中的文件 let rec loop path string Array append path gt Directory GetFiles path g
  • getCacheFiles() 和 getLocalCacheFiles() 是否相同?

    As 获取本地缓存文件 http hadoop apache org docs r2 3 0 api org apache hadoop mapreduce JobContext html getLocalCacheFiles 已被弃用 我
  • 引导开关事件处理程序不工作

    我问了一个与此类似的问题here https stackoverflow com questions 22460608 bootstrap switch js being called but doing nothing但现在我坚持使用 B
  • 使用子进程来避免长时间运行的任务断开discord.py bot?

    我为我的 Discord 服务器创建了一个机器人 它会转到给定 subreddit 的 Reddit API 并根据您输入的 subreddit 在 Discord 聊天中发布当天的前 10 个结果 它忽略自己的帖子 实际上只发布图片和 G
  • Pandas 或 Numpy:如何获取匹配的数据条目来进行数据操作

    举例来说 我有两个这样的数据关系 Data1 C1 C2 Peter kiwi John banana Susan peach Joe apple Data2 C3 C4 apple 4 banana 7 apple 4 对于 data1
  • winmd 文件的版本 255.255.255.255 表示什么?

    我注意到大多数 全部 winmd文件的版本为255 255 255 255 like Windows 版本 255 255 255 255 文化 中性 PublicKeyToken null Metro 应用程序引用具有此版本号的此类程序集
  • Android Studio:Facebook 显示。(内容)无法正常工作

    我在 Android Studio 上使用 Facebook SDK 4 0 在我的应用程序中 我有一个按钮 应该使用设置的内容将图像共享到 Facebook Bitmap h BitmapFactory decodeResource ge
  • 同一行不同列的多个行值

    我有一个有 4 个字段的表Person id Store id startdate and enddate 对于特定值person id 可以有许多具有不同开始和结束日期的记录 这里我需要将多行值更新为同一行和不同列 示例1 Person
  • 从另一个窗体 Winforms 传递值[重复]

    这个问题在这里已经有答案了 网上所有传表单的教程都是从form1然后打开form2然后传值 我想要一些相反的东西 表单 1 和表单 2 已打开 因此如果您在表单 2 中单击 确定 则您在表单 2 中获得的值将传递到表单 1 中 前任 for
  • Rails4 ActionController::InvalidAuthenticityToken 错误

    我有 Rails4 应用程序在生产中运行 我的访问者偶尔会遇到 ActionController InvalidAuthenticityToken 错误 我无法重现该错误 我每天都会收到 2 4 条来自各种形式的通知 但背后没有明确的逻辑
  • MVVM 方式关闭文档并可取消

    我正在将 Avalondock 2 x 用于我的一个开源项目 如果文档在关闭时变脏 您应该能够取消关闭 我正在使用 Caliburn Micro 和 Coroutine 我能够解决这个问题的唯一方法是使用 C M 附加到事件
  • 使用 knit 有条件地在 RMarkdown 中包含子文档列表

    给定子文档列表 如何根据某些条件选择将哪些子文档插入到主文档中 在我的用例中 我将一个数据集中的未知条目与第二个数据集中的所需条目进行匹配 第二个数据集具有与每个条目关联的子文档 如果找到匹配项 我想包含其关联的子文档 以其最基本的形式 这
  • 字符串添加换行符,跨平台

    我正在我的应用程序中生成一些文本 由于文本是更大消息的一部分 有时我需要添加换行符 有时则不需要 NEWLINE n TODO how to define this cross platform Can I use os linesep d
  • SSRS 2008 报告中除以零/空的解决方法

    我有一个报告 其中一个字段的值为表达式 Fields TotalPrice Value Fields TotalSlots Value 尽管有时 TotalSlots 是空白的 因此我遇到了除以零的运行时错误 所以我把表达方式改成了这样 I
  • 如何为 RecyclerView 项目入口设置动画(滑入)?

    基本上我想要类似的东西这个 第 30 秒处 https www youtube com watch v Q8TXgCzxEnw t 30 我希望活动开始后我的物品能够按顺序滑入 我尝试过谷歌搜索 我没有发现任何我能理解的东西 我仍在为 An
  • PECL 安装失败

    从 PHP5 2 6 升级到 php 5 3 后 看起来 我还必须重新安装 PHP memcache module 所以我下载了最新版本的memcache 3 0 6 并遵循此文档 http www php net manual en in
  • 如何使用 python 解析嵌套的 XML 标签?

    如果我使用了错误的术语 请原谅 但这就是我想要完成的任务 我正在尝试从嵌套标签中提取属性和文本信息 例如别名 付款 金额等 但是我的示例代码块只能从 中的子元素中提取信息 而不能从 如何使用 elementtree 尝试获取子元素的子元素
  • 如何从 Backbone Marionette 中的项目视图实例访问复合视图

    基本情况是这样的 我有一个复合视图和一个项目视图 我构建了 Composite 视图 传递给它一个模型和一个集合 模型数据用于填充复合视图的模板 集合数据用于填充复合视图的项目视图 我想要做的是 在项目视图的模板助手中 我想访问复合视图的模