草庐IT

Backbone-relational

全部标签

javascript - 为什么我的 Backbone 模型 hasChanged() 总是返回 false?

给定以下代码段:varm=newBackbone.Model({name:'joshua'});m.set('name','somethingelse');如果我现在调用m.hasChanged()或m.hasChanged('name'),我会得到false。为什么?我的理解是这两个都应该返回true。m.changedAttributes()也返回false。这是一个fiddle,它说明了我正在做的和期待的事情:http://jsfiddle.net/9cvVv/88/编辑:似乎除非你通过{silent:true;}到set()方法,然后它将在您的模型上触发change事件,清除c

javascript - Backbone.Js - el 和 $el 有什么区别?

所以我整个下午都在thisproblem上卡住了我最终解决了。原来我分配的是el而不是$el。两者有什么区别,我应该在什么时候使用它们? 最佳答案 直接来自thedocumentation,$el是:AcachedjQuery(orZepto)objectfortheview'selement.Ahandyreferenceinsteadofre-wrappingtheDOMelementallthetime.因此,$el是el的缓存jQuery(或Zepto)版本。如果你需要在el上使用任何jQuery或Zepto方法,你可以简单

javascript - Backbone.js 从它的初始化方法中获取集合

有人为我们构建了一个应用程序,向我提供了代码,以便我可以通过它,我注意到了这一点,一开始看起来还不错,甚至很高兴让收藏管理他的数据但过了一会儿我开始思考这个想法可能存在的陷阱所以:从它自己的初始化方法中获取集合的数据是一种好习惯。例如:varBook=Backbone.Model.extend({});varBooks=Backbone.Collection.extend({url:'/books',initialize:function(){//dosomelogichere//ifcollectionisempty,fetchfromserverif(this.size()==0)

javascript - 在 backbone.js 集合中持久化和加载元数据

我有一个使用backbone.js的情况,我有一个模型集合,以及一些关于模型的附加信息。例如,假设我要返回一个金额列表:它们有一个与每个模型关联的数量。现在假设每个数量的单位始终相同:比如夸脱。然后我从我的服务中得到的json对象可能是这样的:{dataPoints:[{quantity:5},{quantity:10},...],unit:quarts}现在主干集合没有真正的机制来将此元数据与集合本地关联,但有人在这个问题中向我建议:Settingattributesonacollection-backbonejs我可以使用.meta(property,[value])样式函数扩展集

javascript - Backbone Js : . on and .listen vs .bind

这个问题在这里已经有了答案:Backbonejs.listenTovs.on(2个答案)关闭5年前。.on、.listenTo、.bind有什么区别?我在这里测试了它们,它们似乎做同样的事情:回调。varNewStatusView=Backbone.View.extend({events:{"submitform":"addStatus"},initialize:function(options){//using.on//this.collection.on("add",this.clearInput,this);//orusingbind://_.bindAll(this,'addS

javascript - Backbone.Collection 通过 id 获取模型

我有一个从服务器获取模型的集合。这行得通,现在我想通过MyCollection.at(0)的id获取一个模型,我得到:child_changes:Array[0]_changing:false_currentAttributes:Object_events:Object_hasComputed:true_pending:false_previousAttributes:Objectattributes:Object_id:"50ef7a63b2a53d17fe000001"author_name:"authorname"bookmark:""info:"bookmarkdescript

javascript - Backbone.js Web 应用程序在 Internet Explorer 上不可用

我已经开发了我的Web应用程序,但没有在IE上对其进行测试。尽管它在所有浏览器上都运行良好,即。Chrome、Firefox、Safari,但当涉及到IE时,会有一种奇怪的行为。有时会加载应用程序,有时会加载空白页面,就好像没有任何“绑定(bind)”事件有任何影响一样。幸运的是,当应用程序加载时,导航面板部分丢失了。我现在无法向您展示代码,因为我不确定要展示哪一部分以及哪里做错了。如果你们中的任何人都可以向我提供一份list,说明要检查的内容以及哪些工具最适合在IE上进行调试,那就太好了。如果你们中的任何人能告诉我IE上最常见的backbone.js错误,那也会有所帮助。PS:我正在

javascript - backbone.js this._configure 在调用 View 时未定义

TypeError:表达式'this._configure'[undefined]的结果不是函数。每当我扩展Backbone.View时,我都会遇到这个错误我的应用程序结构如下://index.js$(function(){window.Project=Backbone.Model.extend({});window.ProjectCollection=Backbone.Collection.extend({});window.projects=newProjectCollection;window.ProjectView=Backbone.View.extend({});window

javascript - 单击或按 Enter 时触发 Backbone 事件

我是backbone的新手,我正在寻找一种在我按下Enter以及单击时触发我的按钮的方法。目前showPrompt仅在单击时执行。让它在按下Enter时执行的最干净的DRYest方法是什么,最好只针对该输入字段。(function(){varFriend=Backbone.Model.extend({name:null});varFriends=Backbone.Collection.extend({initialize:function(models,options){this.bind("add",options.view.addFriendLi);}});varAppView=B

javascript - 调试 Javascript(Backbone 和 Marionette)

现在,当我使用chrome开发工具调试backbone或marionette时,我最终设置了断点和诸如此类的东西,但是一旦代码暂停,就很难判断我正在使用什么类型的对象,因为chrome标签一切都是“child”。(我想是因为那是构造函数)是否有任何简单的方法来更改此声明或确定我正在使用的模型/集合类型。这让我疯狂到想开始做这样的事情:MyModel=Backbone.Model.Extend({//the$$$putsitatthetopoftheinspector,theNAMEisjustforotherdevs$$$NAME="MyModel",...});我不太喜欢它,因为它.