Backbone.js + GUI:我是否必须使用视图和模型构建gui,或者从开始使用html加载它

时间:2011-09-13 00:05:44

标签: javascript templates backbone.js

到目前为止,我只创建了一些小型测试应用程序,而且我真的不知道如何将backbone.js用于完整的应用程序GUI。

我甚至看到了backbone.js文档中最小的例子:

var Sidebar = Backbone.Model.extend({
  promptColor: function() {
    var cssColor = prompt("Please enter a CSS color:");
    this.set({color: cssColor});
  }
});

window.sidebar = new Sidebar;

sidebar.bind('change:color', function(model, color) {
  $('#sidebar').css({background: color});
});

sidebar.set({color: 'white'});

sidebar.promptColor();

这是否意味着我必须将GUI的每个元素都包装到模型和视图中? 或者这会被认为是不好的做法吗?

我觉得这会过于复杂,我很可能只是在html文件中加载gui,并仅为需要动态内容的gui元素制作模型/视图。

  

清楚地陈述问题:构建你的gui是个好主意   槽模型/视图?如果是这样,你创建1个全局视图?或者真的   构建视图中的每个元素? (标题/侧边栏/导航栏/   内容区/页脚/等等......)

2 个答案:

答案 0 :(得分:1)

不幸的是,这主要是一个“依赖”的问题。这取决于您的应用程序需要做什么,通过骨干对象对HTML需要多少控制等等。

我认为你不会找到这个问题的“正确答案”,因为这是非常主观的。

相反,我建议您继续使用主干来查找哪些实现适合您,以及何时查看主干文档中的现有示例应用程序以获取创意。

我还强烈建议您为backbonejs购买Peepcode和Tekpub截屏视频。他们值得每一分钱。如果你没有在后端做任何asp.net mvc 3工作,你可以跳过tekpub mvc 3系列(主干剧集的地方)。

如果您搜索它们,还有很多很棒的博客文章和参考实现。

答案 1 :(得分:1)

Backbone的表示层主要是基于约定的,而不是提供丰富的预定义小部件层次结构和布局管理器,如传统的gui框架Backbone完全没有做任何事情来创建你的GUI,除了提供一个推荐的结构,用于将视图层模块化为松散耦合的独立部分,可以自动更新以响应用户操作或模型更新。 你应该模块化到什么程度完全取决于你。您可以构建自己的嵌套视图层次结构,例如。包含顶部工具栏和底部工具栏视图的侧边栏视图以及占据主体的列表视图和该列表视图将进一步包括可以呈现的列表项视图。 是否应该完全取决于您的需求。例如,如果侧边栏中的导航链接列表是静态的并且永远不会更改,那么这种级别的视图嵌套只是一种过度杀伤。但是,如果您的列表视图附加到集合,或者您需要从服务器以增量方式获取相关项目的嵌套树,那么上述方法就是可行的方法。 拇指规则只会将您的表示层视为视图类,直到它有助于方便。