草庐IT

集合论与图论

全部标签

javascript - backbone.js 集合未正确删除 View 中的项目

我在View中从模型内的集合中删除项目时遇到了一些问题。基本上模型/集合结构如下:基本上,当我尝试从子项目View中的子项目集合中删除一个项目时,它实际上从集合中删除了正确的项目。然而,当我开始坚持主模型时,该项目似乎仍在收藏中。这是我的观点的结构:主视图插入主模型所需的DOM节点,主模型为项目模型等创建新View。所有View都将主模型作为模型选项,如下所示:newApp.Views.MainModelView({model:this.model,el:$('#nodeID')})唯一不同的是子项模型View的创建,由于View和模板的可重用性,我仍然传入主模型,但是我也传入了项集合

javascript - 没有集合的主干模型。向服务器发送重复数据?

我有一个由Rails后端提供支持的Backbone应用程序。我有一个Invitation资源,我可以通过向邀请Controller的创建操作发送POST请求来发送邀请。我的Backbone模型看起来像这样(coffeescript):classInvitationextendsBackbone.ModelurlRoot:'/invitations'发送邀请的表单模板如下。我试图让它尽可能接近普通的rails形式,因为看起来Rails会处理得最好:这是该模型和模板的主干ViewclassInvitationViewextendsBackbone.View#thisisthetemplat

javascript - 集合中的 Backbone 集合

我正在使用backbone构建我的第一个真正的网络应用程序,但我正在努力处理嵌套资源。这是我正在使用的json响应的简化版本:{"id":1,"title":"TestSurvey","groups":[{"id":1,"title":"BasicQuestions","questions":[{"id":1,"title":"Whichisyourfavoritecolor?"},{"id":2,"title":"Doyouhaveanyotherhobbies?"}]},{"id":2,"title":"WorkingQuestions","questions":[{"id":3,

javascript - 主干集合保持模型变异的排序顺序

如果我有一个带有比较器的集合。(在CoffeeScript中)classWordsextendsBackbone.collectioncomparator:(word)->word.get('score')如果我正在更改,我如何保持集合排序基础项目的分数。这个想法是将其附加到ListView,其中带有最低分总是在最前面。我一直在对集合手动调用排序每次我改变一个实例,但这似乎不是鉴于整个列表已排序,效率太高有一个项目。我可能会尝试删除变异的项目并且然后再添加。有什么建议吗? 最佳答案 由于一个简单的原因,渲染代码看起来效率非常低:DO

javascript - Angular 中的模型和集合?

我来自Backbone,所以也许我的观点受到了偏见,但我很难看到在Angular中建模数据的最佳方式。2向数据绑定(bind)非常棒,但是当我想拥有持久的集合和模型类时,我感到很困惑。我习惯于能够定义一个集合,比如用户,然后能够在我想用新模型更新它时调用.fetch()。我也可以在集合和每个模型上定义自定义方法。varusers=newUserCollection();users.fetch();users.doSomethingCustom()users.at(0).doSomethingModel();到目前为止,我已经研究过Restangular和ngActiveResource

javascript - 如何防止 Backbone 模型向集合事件传播?

如何防止主干模型事件传播到主干集合?编辑:假设我有如下内容,其中CollectionView包含MyModels的集合...varCollectionView=Backbone.Collection.Extend({initialize:function(){this.collection.on("change",doStuff);}});varModelView=Backbone.View.Extend({initialize:function(){this.model=newMyModel();this.model.on("change",doStuff);this.model.f

javascript - Backbone(还有 Marionette)尝试在集合开始时显示新记录,而不重新渲染整个集合

我正在尝试在集合的开头呈现一个项目(想象一下,如果您在facebook上发布了一条新记录)当我来add(response,{at:0});到集合中,记录在0处正确插入到集合中,但呈现在项目列表的底部。我很困惑,因为我以前有这个工作,但我认为我在做的是一种hacky风格,只是重置并重新渲染集合。我想知道处理这个问题的简洁方法是什么,我应该在哪里绑定(bind)逻辑。是在集合的add方法上吗?目前这是空的(但我正在使用Marionette),我觉得这会覆盖backbone的默认渲染。我如何再次控制它,以便我可以正确地将我的新项目添加到列表中,而无需全部销毁并重新创建它。

javascript - 使用 fetch with backbone 更新集合

根据官方文档,当我做这样的事情时:collection.fetch({update:true,remove:false})我为每个新模型获得一个“添加”事件,为每个已更改的现有模型获得一个“更改”事件,但没有删除任何内容。为什么如果我调用静态数据源(集合的url总是返回相同的json),则为收到的每个项目调用添加事件?这里有一些代码(我没有渲染任何东西,我只是在调试):ExampleRefresh这是JS(function($){//TwitterModelModelsTwitt=Backbone.Model.extend({});//TwitterCollectionCollecti

javascript - Backbone js 从服务器自动刷新/重新加载集合并使用集合更新 View

刚接触Backbone,请多多包涵我不太漂亮的backbonejavascript代码。这是我的代码varSchedule=Backbone.Model.extend({initialize:function(){console.log("initializingmodel");}});varScheduleCollection=Backbone.Collection.extend({model:Schedule,url:"",parse:function(resp){returnresp;},});varSchedules=Backbone.View.extend({initiali

javascript - Backbone.js 验证集合

Backbone.js提供模型验证。但是没有一种简单的方法来检查集合中的所有模型是否有效。集合没有.isValid属性。我使用这样的hack:_.isEmpty(_.filter(myCollection.models,function(m){returnm.validationError;}))是否有更优化的方法来“验证”集合? 最佳答案 使用some怎么样?方法?varhasErrors=_.some(myCollection.models,function(m){returnm.validationError;});