我有一个巨大的启动任务加载列表。 我想显示它们取决于选定的列表/收件箱,这样就不会有每个列表的额外负载。 window.Task = Backbone.Model.extend({}); window.TasksCollection = Backbone.Collection.extend({ model: Task, url: '/api/tasks', inbox: function() { return this.filter(function(task) { return task.get('list') == null; }); }, list: function(id) { return this.filter(function(task) { return task.get('list') == id; }); } }); window.tasks = new TasksCollection; window.TaskView = Backbone.View.extend({ tagName: 'li', template: _.template($('#item-template').html()), initialize: function() { _.bindAll(this, 'render', 'close'); this.model.bind('change', […]
Facebook React 鼓励你分离可变( state )和不可变( props )状态: 尽量保持尽可能多的组件无状态。 通过这样做,您可以将状态隔离为最合乎逻辑的位置,并最大限度地减less冗余,从而更容易推断您的应用程序。 当状态改变时,你应该调用setState来触发虚拟DOM差异,只有在需要时才会导致真正的DOM更新。 有一种方法可以通过调用forceUpdate手动触发DOM更新,但不鼓励 : 通常你应该尽量避免使用forceUpdate() ,只能从render() this.props和this.state中读取。 这使得您的应用程序更简单,更高效。 然而,我所看到的所有React + Backbone示例都忽略了这个build议 ,并且在props和调用forceUpdate存储模型和集合中forceUpdate : http://www.thomasboyt.com/2013/12/17/using-reactjs-as-a-backbone-view.html https://github.com/usepropeller/react.backbone/blob/master/react.backbone.js https://gist.github.com/ssorallen/7883081 http://eldar.djafarov.com/2013/11/reactjs-mixing-with-backbone/ 即使React自己的例子使用forceUpdate : https://github.com/facebook/react/blob/master/examples/todomvc-backbone/js/app.js#L148 有没有更好的方法,它会带来什么好处?
我正在尝试按相反顺序对Backbone.js集合进行sorting。 以前有关于如何用整数做这个回答,但没有用string。 var Chapter = Backbone.Model; var chapters = new Backbone.Collection; chapters.comparator = function(chapter) { return chapter.get("title"); }; chapters.add(new Chapter({page: 9, title: "The End"})); chapters.add(new Chapter({page: 5, title: "The Middle"})); chapters.add(new Chapter({page: 1, title: "The Beginning"})); alert(chapters.pluck('title')); 上面的代码把A – > Z中的章节sorting,但是如何编写一个从Z – > Asorting的比较器呢?
我一直在研究Backbone.js几个星期,我觉得在模型,路由器和集合中使用视图是很舒服的。 我还有一些很大的差距: id , cid和idAttribute之间的连接是什么? 他们如何互相影响? 一个新的模型到底是什么时候得到它的ID? 服务器负责分配吗? 我是否需要将其添加到模型的defaults (可能作为一个函数)? 也许addNewModel函数应该这样做?
首先,应该为应用程序提供的静态页面是login页面吗? 其次,我的服务器端代码是好的(它不会给任何用户不应该能够看到的数据)。 但是,如何让我的应用程序知道,如果用户没有login,返回到login表单?
this.col = Backbone.Collection.extend({ model: M, comparator: function(item) { return item.get("level"); } }); 以上代码按级别sorting项目。 我想按级别sorting,然后按标题sorting。 我可以这样做吗? 谢谢。
我是Backbone.js的新手,我试图找出状态variables应该存在的地方 。 我的用例: 我有一个应用程序,提供了一本书的阅读界面(我知道,经典的例子,对吧?)。 我的模型是Book和Page与集合类为每个。 应用程序的结构大致如下(原谅ASCII的Visio): +————+ | Controller | +————+ | Views Models | +————–+ +—————-+ |-| IndexView |——| BookCollection | | +————–+ +—————-+ | | | +————–+ +—————-+ +-| BookView |——| Book | +————–+ +—————-+ | | | +————–+ | |-| TitleView |-+ | | +————–+ | +—————-+ | +-| Page | | […]
所有关于Backbone的例子我已经看到整个应用程序使用一个路由器,但是对于应用程序的每个单独部分(页眉,页脚,舞台,侧边栏)有一个路由器没有意义吗? 有没有人用多个路由器构build应用程序?您有什么经验? 让我们来考虑一个嵌套视图的复杂应用:当一个视图有自己的路由器来处理子视图的显示的时候,有没有比一个大的路由器通知主视图改变子视图更好的方法呢? 这个问题的背景:我已经看到很多骨干路由器和GWT中的ActivityMapper的相似之处。 ActivityMapper只负责为DOM中给定的路线和给定的容器获取正确的演示者。
例如,有没有办法将我的“ i18n ”助手嵌套在另一个助手的哈希variables中? {{view "SearchView" placeholder="{{t 'search.root'}}" ref="search" url="/pages/search" className='home-search' polyfill=true}}
我在下面的backbone.js控制器的索引操作中使用fetch: App.Controllers.PlanMembers = Backbone.Controller.extend({ routes: { "": "index" }, index: function () { var planMembers = new App.Collections.PlanMembers(); planMembers.fetch({ success: function () { var recoveryTeam = planMembers.select(function (planMember) { return planMember.get("TeamMemberRole") == "RecoveryTeam"; }); var otherMembers = planMembers.select(function (planMember) { return planMember.get("TeamMemberRole") == "Other"; }); new App.Views.Index({ collection: { name: "Team", members: recoveryTeam }, el: […]