问题标签 [backbone-views]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - Backbone.View "el" 混乱
应该如何处理视图el
?它必须被设置,否则事件不会触发(见这里)。
但它应该是页面上已经存在的元素吗?在我的应用程序中,我将(jQuery 模板)模板渲染到 Fancybox。el
在那种情况下应该是什么?
javascript - Backbone.js 查看实例变量?
我正在学习 Backbone.js 并试图弄清楚是否可以在 Backbone 视图中包含实例变量。
我的目标是在实例化视图时从外部文件加载视图的模板。目前我将它们存储在 Backbone 应用程序的全局命名空间中的全局变量中,但将模板存储在视图的实例变量中会更干净。目前我的设置是这样的:
但是,我不想使用被定义为全局变量的“模板”,而是按照这些思路在视图的初始化函数中创建“模板”(但这不起作用):
这可能(?)非常简单和/或明显,但我处于 Backbone.js 学习曲线的某个地方,我非常感谢任何帮助!谢谢!
javascript - 在 0.9.0 版本中,新的 Backbone View 'events' 哈希如何处理函数值而不是字符串?
Backbone 0.9.0 更新日志说:
视图的事件哈希现在还可以包含直接函数值以及现有视图方法的字符串名称。
当我尝试以下操作时,它失败了,说事件的值是undefined
.
我误解了新功能吗?有人可以解释它的工作方式与我预期的不同吗?也许这只是我在定义时的 JavaScript 语法/“this”值,这很糟糕。
我习惯的方式仍然有效:
javascript - 如何根据模型属性为 Backbone.js 视图动态设置类名?
基本上我需要做这样的事情
问题是,传递给的函数className
是在视图模板的 html 上下文中执行的,所以我不能调用this.model
.
有什么方法可以在渲染过程中访问模型吗?或者我是否需要稍后设置类,例如在render
函数中?
javascript - Backbone.js 查看事件未触发
我在让我的主干.js 视图事件触发时遇到问题。当我单击#login-button 时,什么也没有发生。
我也在使用 iCanHaz (http://icanhazjs.com/) 来加载模板。
这是我的javascript:
这是我的标记(使用 ICanHaz.js):
javascript - Backbone JS:一个视图可以在其他视图中触发更新吗?
在我的简单项目中,我有 2 个视图 - 行项目视图(品牌)和应用程序。我附加了允许选择多个项目的功能:
问题是,我想知道选择了多少项目。在此设置中,选择不会影响模型,因此不会触发任何事件。从 MVC 概念中我了解到视图不应该直接与其他视图对话。那么 AppView 怎么知道 BrandViews 中选择了某些东西呢?
更具体地说,我 AppView 知道选择了多少项目,所以如果选择了超过 1 个,我会显示一个用于多选的菜单。
javascript - 视图更改时更新模型的backbone.js正确方法
视图更改时更新模型的正确方法是什么。是否需要在视图中或在控制器等其他地方进行?
例如,我有一个模型 (model1) 和一些与该模型关联的视图 (View1)。当我更改视图上的某些字段时,我需要更新模型。哪种方法是正确的?
另外,我有一个与另一个视图(View2)关联的模型集合,我需要将模型(model1)放入该集合。第二个问题 - View1 或 Model1 是否应该知道收集,如果是 - 应该如何完成?
javascript - 我是否以正确的方式构建我的应用程序?- 骨干.js
我对 Javascript 和backbone.js 很陌生。在 AS3 中使用 RobotLegs 开发了一个应用程序,需要将其移植到 Javascipt。对于客户端 MVC,我开始研究 Backbone.js。这些概念看起来很简单,但我有点不确定以“正确”的方式做事。还有一些我卡住的地方...
所以基本上,我有这个 Web 服务(非 RESTful),我需要从中获取一个带有应用程序配置的 JSON 对象。理想情况下,我认为进行此调用的最佳方法是使用 Backbone 模型,但我不确定如何覆盖 URL 和 Parse 方法以使其与非 Restful 服务一起使用。所以现在我从 App.js 中的模型外部对其进行 Ajax 调用(代码共享如下)。
从 JSON 调用中获取数据后,我想将其存储在 ConfigModel(SingleTon 模型)对象中,我可以从模块中查询该对象以检索最终填充某些视图的值对象。我这里有 2 个问题。
1) 我不知道如何使用 Backbone.js 实现单例模型 2) 我不知道如何将我的 ConfigModel 进一步划分为更小的模型/集合,以及我是否需要将它们也设为单例或者只是将它们传递给视图构造函数。
我正在使用 Require.js 来定义([])特定视图/模型等的依赖模块。现在我不确定加载模块的范围。如果我需要使它们成为单例,那么我应该只在某个地方加载它们一次,然后将依赖项注入到其他类/模块对象中。如何使用 Backbone.js 执行此操作???
最后,我想在整个框架中使用自定义事件。我可以全局调度并从模型/视图等中收听的框架事件。
正如你所看到的,我对范围/单例以及所有这些如何与 Backbone.js 和 Require 相适应感到非常困惑。
这是我现在的应用程序结构...
1) 我的 index.html 文件使用 Require.js 加载“Main.js”
2) 在 Main.js 中,我加载 App.js 并在其上调用 init。Init 调用 getConfig() 函数,该函数对 Web 服务进行 AJAX 调用,并获取和解析 JSON 文本文件。我想将其存储在单例 ConfigModel 中。但是,我现在对此发表了评论,因为我开始尝试使用我的 ConfigModel 本身进行 web 服务调用的方法......这不起作用。
3) 然后我有一个带有默认 URL 映射的路由器。在成功接收来自 Web 服务的 JSON 后,我初始化了路由器。我不确定这是否正确,或者我应该从路由器进行 Ajax 调用?
这是代码: http: //pastebin.com/HHRF88Tq
我知道我到处都是,但如果有人能引导我朝着正确的方向前进,我会非常感激......
谢谢一堆。
萨米尔
javascript - 如何动态创建 Backbone 视图元素?
我想在 Backbone js 应用程序中动态创建一些视图元素。当一个新视图被初始化时,我希望它把新元素插入到 DOM 中,将元素的引用存储在 view.el 中,并像往常一样委托事件。
我知道我可以放入我的 html,然后使用 el:"#test" 设置一个视图,但这对于模式和其他不是 Web 应用程序核心的视图来说似乎有点过头了。有没有规定的方法来做到这一点我在文档中缺少?我只是误解了视图应该如何工作吗?
backbone.js - 如何使用动态创建的“el”创建主干视图?
我有两个视图——一个 OverlayView 和一个 StoryView。StoryView 需要附加到 OverlayView(两者都是动态创建的)。我在 OverlayView 中动态创建了#overlay div,但是当我将 StoryView 的“el”设置为 #overlay 时,StoryView 的 this.$el 是一个空数组。在 StoryView 创建时,#overlay div 肯定存在于 DOM 中。
如何让 StoryView 将动态创建的#overlay 识别为它的“el”?我是否正确假设'el'应该是视图附加到的'父'容器?OverlayView 的“el”实际上应该是“#overlay”吗?
叠加视图:
故事视图: