我正在采用 Backbone.js 来渲染 existing large web app 的一个小 Angular .如果这一切顺利,我可以看到 Backbone.js 成长为包含整个应用程序,为有机增长的应用程序提供一些急需的结构。这就是前言。现在的问题:
我有一个选择框,允许用户选择阅读计划。 When the selection changes, the view updates some descriptive text, a calendar interface, and a little widget for marking today's readings as complete.该小部件将为今天条目中的每个阅读(一个或多个)都有一个复选框,以及一个用于继续第二天阅读的按钮。 (您可以在 the existing app 的右侧看到此接口(interface)的当前非主干版本(减去完成方案)。
每个 View 的合适粒度是多少?我已经确定了以下“繁琐的部分”:
每个要点都应该有自己的 View 吗?只是主要部分(选项卡、选择框、小部件)?第一个将产生相当多的 View 。第一个似乎会导致过于复杂的 View 实现。什么最好?
注意:我意识到这可能被解释为一个非常主观的问题,但我仍然在思考 Backbone.js 和 Javascript/DOM MVC 模式,我希望更有经验的 Backbone.js 从业者有一个狭隘的“这是预期的/最有效的”。谢谢!
最佳答案
一般来说, View 的粒度将取决于在特定 UI 的复杂性和 View 过度碎片化之间找到平衡点。我可能不会将 View 用于像按钮这样小的东西(CSS 类就是您真正需要的)。
在您的特定情况下,我可能会有一个日历小部件的 View ——因此它可以很容易地在应用程序的其他地方重复使用——以及整个 Devotions 选项卡的 View 。剩下的可以通过事件绑定(bind)完成。
关于模型更新和重新渲染,Backbone 的整个想法是将关注点与 View 分开。当模型的属性发生变化时,模型会发出“更改”事件,并且当时页面上出现的任何 View 都将显示该特定模型的数据,将收到更改通知,并可以自行更新。
关于javascript - Backbone.js View 的适当粒度是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4463136/
当谈到运行时自省(introspection)和动态代码生成时,我认为ruby没有任何竞争对手,可能除了一些lisp方言。前几天,我正在做一些代码练习来探索ruby的动态功能,我开始想知道如何向现有对象添加方法。以下是我能想到的3种方法:obj=Object.new#addamethoddirectlydefobj.new_method...end#addamethodindirectlywiththesingletonclassclass这只是冰山一角,因为我还没有探索instance_eval、module_eval和define_method的各种组合。是否有在线/离线资
给定一个nxmbool数组:[[true,true,false],[false,true,true],[false,true,true]]有什么简单的方法可以返回“该列中有多少个true?”结果应该是[1,3,2] 最佳答案 使用转置得到一个数组,其中每个子数组代表一列,然后将每一列映射到其中的true数:arr.transpose.map{|subarr|subarr.count(true)}这是一个带有inject的版本,应该在1.8.6上运行,没有任何依赖:arr.transpose.map{|subarr|subarr.in
我需要用任何语言编写一个算法,根据3个因素对数组进行排序。我以度假村为例(如Hipmunk)。假设我想去度假。我想要最便宜的地方、最好的评论和最多的景点。但是,显然我找不到在所有3个中都排名第一的方法。Example(assumingthereare20importantattractions):ResortA:$150/night...98/100infavorablereviews...18of20attractionsResortB:$99/night...85/100infavorablereviews...12of20attractionsResortC:$120/night
我遇到了一个非常奇怪的问题,我很难解决。在我看来,我有一个与data-remote="true"和data-method="delete"的链接。当我单击该链接时,我可以看到对我的Rails服务器的DELETE请求。返回的JS代码会更改此链接的属性,其中包括href和data-method。再次单击此链接后,我的服务器收到了对新href的请求,但使用的是旧的data-method,即使我已将其从DELETE到POST(它仍然发送一个DELETE请求)。但是,如果我刷新页面,HTML与"new"HTML相同(随返回的JS发生变化),但它实际上发送了正确的请求类型。这就是这个问题令我困惑的
我正在尝试为文件操作编写自己的DSL,只是为了学习。我的目标是让它易于理解和编码。这里有3种将字符串附加到database.yml的替代方法:1.append("windows").to("database.yml")2.append(string:"windows").to(file:"database.yml")3.append_string("windows").to_file("database.yml")4.append_string"windows",to_file:"database.yml"5.appendstring:"windows",to_file:"databa
我有这个:AccountSummary我想单击该链接,但在使用link_to时出现错误。我试过:bot.click(page.link_with(:href=>/menu_home/))bot.click(page.link_with(:class=>'top_level_active'))bot.click(page.link_with(:href=>/AccountSummary/))我得到的错误是:NoMethodError:nil:NilClass的未定义方法“[]” 最佳答案 那是一个javascript链接。Mechan
我看到有关未找到文件min.map的错误消息:GETjQuery'sjquery-1.10.2.min.mapistriggeringa404(NotFound)截图这是从哪里来的? 最佳答案 如果ChromeDevTools报告.map文件的404(可能是jquery-1.10.2.min.map、jquery.min.map或jquery-2.0.3.min.map,但任何事情都可能发生)首先要知道的是,这仅在使用DevTools时才会请求。您的用户不会遇到此404。现在您可以修复此问题或禁用sourcemap功能。修复:获取文
我有一个用Rails3编写的站点。我的帖子模型有一个名为“内容”的文本列。在帖子面板中,html表单使用tinymce将“content”列设置为textarea字段。在首页,因为使用了tinymce,post.html.erb的代码需要用这样的原始方法来实现。.好的,现在如果我关闭浏览器javascript,这个文本区域可以在没有tinymce的情况下输入,也许用户会输入任何xss,比如alert('xss');.我的前台会显示那个警告框。我尝试sanitize(@post.content)在posts_controller中,但sanitize方法将相互过滤tinymce样式。例如
出于某种原因,我必须为Firefox禁用javascript(手动,我们按照提到的步骤执行http://support.mozilla.org/en-US/kb/javascript-settings-for-interactive-web-pages#w_enabling-and-disabling-javascript)。使用Ruby的SeleniumWebDriver如何实现这一点? 最佳答案 是的,这是可能的。而是另一种方式。您首先需要查看链接Selenium::WebDriver::Firefox::Profile#[]=
这行ruby代码检测素数(太棒了!)。("1"*n)!~/^1?$|^(11+?)\1+$/#wherenisapositiveinteger详细信息在这篇博文中解释http://www.noulakaz.net/weblog/2007/03/18/a-regular-expression-to-check-for-prime-numbers/我很好奇它在BIG-O表示法中的表现。有人帮忙吗? 最佳答案 根据经验数据,它似乎是O(n2)。我对前10000个质数中的每100个运行Ruby代码。以下是结果:蓝点是记录的时间,橙色线是