骨干的文档指出: events属性也可以定义为一个返回事件散列的函数,以便以编程方式定义事件,以及从父视图inheritance它们。 你如何inheritance父母的视图事件并扩展它们? 父视图 var ParentView = Backbone.View.extend({ events: { 'click': 'onclick' } }); 儿童视图 var ChildView = ParentView.extend({ events: function(){ ???? } });
我有从服务器提供的以下JSON。 有了这个,我想创build一个嵌套模型的模型。 我不确定哪个是实现这个目标的方法。 //json [{ name : "example", layout : { x : 100, y : 100, } }] 我希望这些被转换为两个嵌套的主干模型,具有以下结构: // structure Image Layout … 所以我定义了这样的布局模型: var Layout = Backbone.Model.extend({}); 但是下面哪两个(如果有的话)技术应该用来定义图像模型? A或B以下? 一个 var Image = Backbone.Model.extend({ initialize: function() { this.set({ 'layout' : new Layout(this.get('layout')) }) } }); 或者, B var Image = Backbone.Model.extend({ initialize: […]
我已经读了很多,骨干不做双向绑定,但我不完全明白这个概念。 有人可以给我一个MVC代码库中的双向绑定是如何工作的,以及它如何不与Backbone?
使用Backbone,我可以得到当前路由的名称吗? 我知道如何绑定到路由更改事件,但是我希望能够在其他时间和更改之间确定当前路由。
现在有很多很酷的工具可以制作function强大的“单页”JavaScript网站。 在我看来,这是通过让服务器充当一个API(而不是其他任何东西)并让客户端处理所有的HTML生成东西来完成的。 这种“模式”的问题是缺乏search引擎支持。 我可以想到两个解决scheme: 当用户进入网站时,让服务器完全按照客户端的导航来呈现页面。 所以如果我直接去http://example.com/my_path那么如果我通过pushState去到/my_path ,服务器将会呈现和客户端一样的东西。 让服务器只为search引擎机器人提供一个特殊的网站。 如果一个普通用户访问http://example.com/my_path ,服务器应该给他一个JavaScript网站的繁重版本。 但是,如果谷歌机器人访问,服务器应该给它一些最小的HTML与我要谷歌索引的内容。 第一个解决scheme在这里进一步讨论。 我一直在做这个网站,这不是一个很好的经验。 这不是干的,在我的情况下,我不得不为客户端和服务器使用两个不同的模板引擎。 我想我已经看到了一些好的Flash网站的第二个解决scheme。 我比第一个更喜欢这种方法,并且在服务器上使用正确的工具,可以非常轻松地完成。 所以我真正想知道的是以下几点: 你能想到更好的解决scheme吗? 第二种解决scheme有什么缺点? 如果Google以某种方式发现我没有像普通用户那样为Google bot提供完全相同的内容,那么我是否会在search结果中受到惩罚?
我有一个嵌套的视图设置,可以在我的应用程序有点深。 有很多方法可以考虑初始化,渲染和附加子视图,但是我想知道常见的做法是什么。 这是我想到的一对夫妇: initialize : function () { this.subView1 = new Subview({options}); this.subView2 = new Subview({options}); }, render : function () { this.$el.html(this.template()); this.subView1.setElement('.some-el').render(); this.subView2.setElement('.some-el').render(); } 优点:您不必担心通过追加来维护正确的DOM命令。 视图初始化初始化,因此在渲染function中一次完成的任务并不多。 缺点:你不得不重新委托事件(),这可能是昂贵的? 父视图的渲染函数与所有需要发生的子视图渲染混淆? 您无法设置元素的tagName ,因此模板需要维护正确的tagNames。 其他方式: initialize : function () { }, render : function () { this.$el.empty(); this.subView1 = new Subview({options}); this.subView2 = new Subview({options}); this.$el.append(this.subView1.render().el, this.subView2.render().el); […]
我是一个Web开发人员,我开始大规模地开发Web应用程序,但是我不确定使用什么框架。 我正在考虑Angular.js,但我也考虑过Backbone.js。 对你来说,最好的框架是什么? 或者至less有两个看比较的performance。
我正在考虑为我的个人项目使用Knockout或Angular或Backbone。 我需要build立一些更大,更长时间的客户端交互来与我的服务器端的东西。 我想要一个简单而有效的方式来pipe理数据驱动的用户界面。 基于可行性和性能方面,你会select哪种框架来解决上述问题?
按照文档 ,我做了: var collection = new Backbone.Collection.extend({ model: ItemModel, url: '/Items' }) collection.fetch({ data: { page: 1} }); url竟然是: http://localhost:1273/Items?[object%20Object] 我期待像http://localhost:1273/Items?page=1 那么如何在获取方法中传递参数?
是否有backbone.js的CDN资源,还有我们项目中使用的underscore.js?