Tag: backbone.js

如何克隆骨干集合

有没有办法轻松克隆骨干收集? 我想知道为什么没有像模型的方法build立。 我的问题是我有一个模型拿着孩子的集合。 当我克隆模型。 我仍然收集孩子,但只有他们的默认值。

用querystring导航路线

将Backbone.Router.navigate设置为true test : var test = false; var Router = Backbone.Router.extend({ routes: { 'posts': 'showPosts' }, showPosts: function () { test = true; } }); router = new Router(); Backbone.history.start(); router.navigate('posts?foo=3', {trigger: true}); assert.ok(test); 例如,将posts?foo=3片段默认匹配posts路由,还是必须为此设置另一个路由,例如: posts?*querystring ? 谢谢 PS:我知道存在主干查询参数,但我只想知道主干。

Backbone.js模型与集合

我有2个模型和一个集合。 JobSummary是一个模型, JobSummaryList是一个JobSummary项目的集合,然后我有一个JobSummarySnapshot模型,其中包含一个JobSummaryList : JobSummary = Backbone.Model.extend({}); JobSummaryList = Backbone.Collection.extend({ model: JobSummary }); JobSummarySnapshot = Backbone.Model.extend({ url: '/JobSummaryList', defaults: { pageNumber: 1, summaryList: new JobSummaryList() } }); 当我在JobSummarySnapshot对象上调用fetch时,它会得到一切…除了当我移动通过summaryList集合时,它们都是typesobject而不是JobSummary 。 我想这是有道理的,因为除了defaults对象以外,它不知道summaryList应该是JobSummaryListtypes。 我可以通过每个项目,并将其转换为一个JobSummary对象,但我希望有办法做到这一点,而不必手动。 这里是我的testing代码(在这里工作jsfiddle ): var returnData = { pageNumber: 3, summaryList: [ { id: 5, name: 'name1'}, { id: 6, name: 'name2'} ] }; var fakeserver […]

$(this.el).html和这个$ el.html有什么区别?

有什么区别: $(this.el).html 和 this.$el.html 阅读一些骨干的例子,有些是以另一种方式做的。

困惑于BackboneJS和ExpressJS

我想创build一个NodeJS应用程序,并且我正在学习更多关于需要安装的包来使开发更容易。 特别是两个包,ExpressJS和BackboneJS,让我感到困惑。 两者有什么区别? Backbone提供了一个MVC结构,但ExpressJS没有处理视图和控制器呢? 我应该如何将这两个软件包一起使用,还是应该将它们结合使用? 谢谢!

如何解决Uncaught TypeError:无法读取未定义的属性“原型”?

我有一个小问题。 我正在使用backbone.js。 我用例子编写了这个代码: <script> $(document).ready(function () { window.App = { Views: {}, Models: {}, Collections: {} } App.Collections.Users = Backbone.Collection.extend({ model: App.Models.User, url: 'service' }); App.Models.User = Backbone.Model.extend({}); App.Views.App = Backbone.View.extend({ initialize: function() { console.log( this.collection.toJSON() ); } }); }); </script> 比我开始的服务器,并在浏览器控制台input此: var x =new App.Collections.Users(); x.fetch() 这跟错误: Uncaught TypeError: Cannot read property 'prototype' of […]

单页应用程序的用户身份validation?

我开发了一个单一页面的应用程序原型,在前端使用Backbone,并从服务器上的精简RESTful API消耗数据。 来自沉重的服务器端应用程序开发(PHP和Python),我真的很喜欢用厚的客户端MVC新的不同的devise方法,但很困惑如何最好的限制应用程序login身份validation的用户。 我更喜欢将应用程序本身放在login后面,并且还希望除了站点的本地login之外,还最终实现其他types的login(openid,fb connect等)。 我不清楚这是怎么做的,一直在寻找 – 但是找不到信息让我很清楚。 总的来说,当前注册用户的最佳做法是什么,并要求他们login才能使用您的单页面应用程序? 一旦用户login,api请求如何validation? 我可以存储一个会话,但是如何在API调用中检测此会话,还是在每个API调用中都必须传递一个令牌? 任何答案,将不胜感激!

我如何从它的ID从Backbone.js集合中获取模型?

在我的应用程序中,我所做的所有数据都是基于主键,因为数据存储在数据库中。 我想从基于这个键的集合中获取一个模型。 使用Collection.at()需要数组索引,Collection.getByCid()需要骨干随机生成的客户端ID。 从给定的id值的集合中获取我想要的模型的最佳方法是什么? 我认为我可以做的最糟糕的情况是迭代每个项目.get('id'),然后返回那个项目。

在Backbone.js中扩展Model超类的默认值

我想提出这个问题作为这个答案,但我似乎无法这样做,我道歉。 扩展子类的默认值反映在超类中。 这似乎打败了目的,我更倾向于明确列出超类的默认值在子类中以获得我正在寻找的结构。 var Inventory = Backbone.Model.extend({ defaults: { cat: 3, dog: 5 } }); var ExtendedInventory = Inventory.extend({ }); _.extend(ExtendedInventory.prototype.defaults, {rabbit: 25}); var i = new Inventory(); var ei = new ExtendedInventory(); console.log(i.attributes); console.log(ei.attributes); 这输出: {cat: 3, dog: 5, rabbit: 25} {cat: 3, dog: 5, rabbit: 25} 不是我(不,我假设, 操作 )想要的: {cat: 3, dog: 5} […]

Backbone.js和pushState

如果我在骨干路由器中启用pushState,是否需要在所有链路上使用return false,或者主干是否自动处理? 是否有任何样本,无论是HTML部分和脚本部分。