该应用程序部署在此处:memoryapp.meteor.com
源代码在git repo中提供:https://github.com/SnappyCroissant/memoryapp
要重置应用运行
Cards.update({}, {$set: {state: 'play'}}, {multi: true})
Run Code Online (Sandbox Code Playgroud)
从控制台.
我知道让客户端访问这样的集合是很糟糕的,应用程序远没有准备就绪我只是通过Meteor找到了解决方法.
目前,只要在卡片中运行任何更新,整个DOM重绘除了那些我称之为持久性的元素.据我所知,虽然元素只应在更新时重绘,或者我误解了反应的工作方式?
脚本中发生的唯一真正的动态变化是'state'卡中对象的属性正在被更改.然而,它重绘每个属性和每个DOM元素,除非明确声明不.
是因为它们都被传递到一个数组中的模板吗?如果是这样的话,最好的替代方法是什么.
该结构是有点大杂烩,因为它是一个学习经验,都为这一问题的重要位(据我所知)住在client/memory.js和server/model.js
要获得响应式实现#each,需要LocalCollection.Cursor直接将对象传递给#each.一个数组不会做任何特殊的事情,当任何元素被更改时,整个数组将被重做,这就是你所看到的:
换句话说,这应该做你想要的:
return Cards.find({ deck_id: deck['_id'] }, {sort: {order: 1}})
Run Code Online (Sandbox Code Playgroud)
这会导致额外的重新渲染:
return Cards.find({ deck_id: deck['_id'] }, {sort: {order: 1}}).fetch();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
517 次 |
| 最近记录: |