草庐IT

immutable-collections

全部标签

javascript - Backbone collection.create() 不返回更新后的模型

为了学习主干,我正在创建一个类似Twitter的应用程序。所以你知道Twitter每N秒向服务器发送一个GET请求来检查新推文。如果有新推文,它会创建隐藏的li元素并显示带有“NnewTweets”的按钮。如果您单击它,它会显示隐藏的li元素,显示新推文。但是当您添加一条新推文时,行为会有所不同:推文是可见的。您无需单击按钮即可看到它。我已经为隐藏的推文制作了第一部分。对于发布新推文并直接展示它的部分,我认为通过创建新模型、调用collection.create()并触发正确的事件会很容易做到,例如:varnewTweet=newTweet();newTweet.set(/*setth

javascript - meteor js : Create index in user collection

我创建了一个带有全名字段的用户集合(即JoseOsorio、Josecastro、Johnsmith、MariaSmith),我需要创建一个搜索栏以按姓名或姓氏查找注册用户。即在搜索栏中写下何塞,我想见何塞·奥索里奥和何塞·卡斯特罗。我读到有关在数据库中创建索引但它不起作用或者我做错了,我该怎么做才能解决这个问题? 最佳答案 您还可以像这样使用rawCollection:Products.rawCollection().createIndex({"type":"text","searchString":"text","title":

javascript - 对 Immutable.js 列表进行排序和分组

给定以下数据结构:varMyData=[{"id":1,"status":"live",dateCreated:"12:00:0001/02/2016"},{"id":2,"status":"draft",dateCreated:"13:00:0003/12/2015"},{"id":3,"status":"ready",dateCreated:"16:00:0004/09/2016"},{"id":4,"status":"ready",dateCreated:"10:00:0001/10/2016"},{"id":5,"status":"live",dateCreated:"09:0

javascript - 在 React 中使用 $splice(来自 immutability-helper)而不是 filter 从数组中删除项目有什么优势?

我正在使用immutability-helper对状态数据进行CRUD操作,想知道我是否应该始终使用$splice来删除数据,还是可以使用filter(因为它没有破坏性)?例如,假设我有一个对象数组:todos=[{id:1,body:"eat"},{id:2,body:"drink"},{id:3,body:"sleep"},{id:4,body:"run"}]给定一个项目ID,我可以通过两种方式删除它:一个。找到它的index并使用$splice:index=todos.findIndex((t)=>{return(t.id===id)});newtodos=update(todo

javascript - 云函数 : How to copy Firestore Collection to a new document?

我想在发生事件时使用CloudFunctions在Firestore中制作一个集合的副本我已经有了迭代集合并复制每个文档的代码constfirestore=admin.firestore()firestore.collection("products").get().then(query=>{query.forEach(function(doc){varpromise=firestore.collection(uid).doc(doc.data().barcode).set(doc.data());});});有更短的版本吗?一次复制整个集合? 最佳答案

javascript - 我如何使用 immutable.js 之类的东西在 Redux 中组合多个 combineReducers 函数

我正在使用immutable.JS通过redux-immutablejs管理我的商店。我现在想使用redux-form库,但我在结合reducers时遇到了问题。Redux-immutable提供了一个combineReducers函数,该函数将检查传递给它的所有reducer是否返回不可变对象(immutable对象)。Redux本身提供了一个combineReducers函数,该函数不执行此类检查。Redux-form要求您包含它们的reducer,但我不能使用Reduximmutable的combineReducers这样做,因为它会失败。所以我要做的基本上是像这样组合这两个函数

javascript - 如何从不可变树中获取更改的树,最大限度地重用节点

我有一个像这样的树结构数据:[{id:54,name:123,children:[{id:54,name:123,children:[{id:154,name:1234,children[]...}]}]},{...}]我使用的是Angular2。据我所知,每当输入发生变化并且您的变化检测策略是onPush时,变化检测就会启动。.为了优化树结构更新(例如,在嵌套级别切换节点或更改此类节点的任何属性),我使用了Immutable.Immutable如何帮助我优化更新?我读到Immutable会在数据发生变化时重用旧数据的引用来构造新对象。如何有效地使用不可变数据结构来更新嵌套级别的节点?

javascript - 主干 collection.add 不工作

我有一个像这样的非常基本的设置:varMusicModel=Backbone.Model.extend({});varPlaylistCollection=Backbone.Collection.extend({model:MusicModel,events:{'add':'add'},add:function(mdl){//Thisisworkingperfectlyfineevenoutputofmodelconsole.log(mdl);}});varplaylistCollection=newPlaylistCollection();playlistCollection.add

JavaScriptSerializer 反序列化对象 "collection"作为对象中的属性失败

我有一个结构如下的js对象:object.property1="somestring";object.property2="somestring";object.property3.property1="somestring";object.property3.property2="somestring";object.property3.property2="somestring";我正在使用JSON.stringify(object)通过ajax请求传递它。当我尝试使用JavaScriptSerializer.Deserialize作为字典反序列化时,出现以下错误:没有为“Syst

javascript - 主干 - Collection.add()/Collection.create() 之间的区别?

我对两者之间的差异感到很困惑。似乎Collection.create()(触发add和sync事件)可以看作是Collection.add()(触发add>)和Model.save()(触发sync)?以上评价是否正确?我错过了什么? 最佳答案 没错。是一种捷径。Documentationstates:createcollection.create(attributes,[options])Conveniencetocreateanewinstanceofamodelwithinacollection.Equivalenttoins