问题标签 [todomvc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
153 浏览

ember.js - Ember.js 如何设计不同的数据表示(以 TodoMVC 为例)?

我想知道在 Ember.js 中设计显示同一数据模型的不同表示的最佳方式是什么。要问我的问题,我将使用Ember.JS 的 TodoMVC,它有 3 种 todo-data 表示:

  1. 任何待办事项,即整个待办事项列表(TodosIndexRoute)
  2. 仍处于活动状态且未完成的待办事项 (TodosActiveRoute)
  3. 已完成的待办事项 (TodosCompletedRoute)

目前,您可以通过单击列表底部的单词来查看这 3 个中的每一个,每次都指向不同的 URL。由于目前每个表示都有一个路由,因此每个表示都有其唯一的 URL 是有意义的。主页显示整个待办事项列表 (1.)。

A. 使主页显示所有 3 种表示形式(即仅在一个 URL 下)的最佳 ember.js 设计是什么?

B. 在主页和单独页面上显示所有 3 个的最佳设计怎么样?


目前我只是想出了一个笨拙的方法,并制作了这个修改过的 TodoMVC 应用程序,它在页面底部显示不完整和完整的列表。

在 index.html 中,我添加了新的命名列表:

在js路由中,我将TodosActiveRoute和TodosCompletedRoute复制到了TodoIndexRoute中,就是代码重复,很糟糕。

我觉得我错过了一种优雅的方式,但我目前的 ember.js 知识非常有限。我应该使用{{partial}}{{render}}render还是其他什么?

我尝试了{{ partial }}{{ render }},但我无法让它们显示任何数据

感谢您的帮助。

0 投票
0 回答
444 浏览

javascript - EmberJS todoMVC 示例实现 Parse Data Adapter,重复项

我正在尝试使用 ember.js,它看起来非常酷,在 javascript 中具有 MVC 架构。我按照 todoMVC 入门指南进行操作,一切正常。我用 Parse Data Adapter 替换了数据适配器,它似乎可以工作。但是由于某种原因,它会通过两次创建相同的记录来影响实际应用程序,即使它只运行一次 Todos.Todo.createRecord(..)。

我的印象是数据存储在任何代码被推送到数据存储之前不应该对任何代码产生影响,但我可能需要一点帮助来找出问题所在。

除了使用 Parse 数据存储之外,一切都与入门教程相同。不过,使用 localstorage 适配器可以正常工作。任何帮助将不胜感激!

store.js 文件:

todo.js 文件:

查看 JSbin:

Todo emberjs + Parse 有重复的 JSBIN 问题。

0 投票
1 回答
61 浏览

ember.js - Where is the editing of TodoMVC Ember getting saved?

I'm having trouble figuring out where the edit is being saved. It looks like when we make an edit, the edit is going directly into the Local Storage, and saved immediately. But the view's change method has no save() anywhere. Do you know how this magic is getting done?

I'm looking at the source directly in the chrome source viewing.

0 投票
1 回答
274 浏览

javascript - 像 TodoMVC 这样的主干.js“订单”属性不递增

我很难获得在 BackboneJS 中工作的具有自动递增“订单”属性的模型。

由于某种原因,每个订单都设置为1. 函数中集合的长度nextOrder始终为0

我可以看到集合实例中的nextOrder函数被调用了为集合获取的每个元素的适当次数......但是它尝试计算的集合的长度总是返回!ProfilesOptions.Collections.ProfileListthis.length0

带有 5 个“配置文件”元素的控制台输出:

有没有更好的方法可以为这些分配一个自动递增的客户端 ID?我想要这样做的唯一原因是将它们显示在编号列表中。

0 投票
0 回答
377 浏览

ember.js - Ember.js ToDoMVC - Chrome 多次触发 ObjectController 动作

我一直在关注 ember 的入门指南。

我来到了处理编辑删除项目的部分,并且遇到了一个似乎出现在 chrome 但不是 Firefox 的问题。

自定义组件“edit-todo”有 2 个事件链接到动作“acceptChanges”


如果项目的标题为空,“acceptChanges”操作会触发“removeTodo”操作

如果您编辑一个项目,删除文本并按下回车键或切换焦点,该项目将被删除。这在 Firefox 中非常适合我。

但是,在 Chrome 中,如果您删除标题并按 enter ,则 acceptChanges 操作会触发两次。当 DOM 更新以移除项目时,acceptChanges 操作会再次触发,可能是因为它失去了焦点。

这个 jsbin显示了问题,它本质上只是指南中的代码和一些控制台日志。如果您编辑项目“BBB”,删除文本并按回车,“CCC”的数据也将被删除。它保留在 DOM 中,但您不能再与该项目交互,并且剩余项目计数错误。如果您在开发人员工具中打开 ember 检查器,您可以看到唯一剩下的数据是“AAA”项。

我想知道这是否是 ember、ember-data、chrome 的错误,还是我应该在我的 js 中检查的预期行为?

我正在使用 Chrome 版本 26.0.1410.63

0 投票
1 回答
81 浏览

javascript - 在 todomvc 主干示例中,为什么在控制器中使用事件绑定而不是路由?

例如,在 app-view.js 中,我看到了一些事件绑定:

但在我看来,控制器中的路由完全可以替换事件绑定,例如:

只需用链接替换按钮,我认为使用路由使它更像一个 mvc 应用程序,就像ASP.NET MVC

为什么它仍然使用事件绑定?

0 投票
1 回答
265 浏览

angularjs - 带有角度打字稿的 TodoMVC

我正在学习 Typescript 和 Angular,我刚刚解决了一个未注册控制器的问题,因为控制器的脚本是在应用程序模块的脚本之后加载的。因此,我查看了 TodoMVC 示例中的 index.html,以了解控制器、服务和指令的文件是如何加载的,但没有看到它们在任何地方加载。这些类的代码在哪里加载?

0 投票
1 回答
45 浏览

backbone.js - Backbone.js TodoMVC 应用程序似乎存在缺陷

这指的是http://todomvc.com/architecture-examples/backbone/

在 app.AppView 中,当添加单个待办事项时,会多次调用 render() 方法。

如果我没记错的话,多次调用 render() 方法是不好的。这是 TodoMVC 实现中的缺陷吗?

0 投票
1 回答
1535 浏览

backbone.js - 在 TodoMVC 中,元素上的 data-framework="backbonejs" 是做什么用的?

我在 TodoMVC 示例的 index.html 中找到以下代码行:

有人知道这个数据元素是用来做什么的吗?

0 投票
1 回答
149 浏览

ember.js - 扩展 TodoMVC 以支持多个待办事项列表

我试图通过扩展标准的 Todo MVC 来感受 Ember。我想介绍多个待办事项列表的概念(例如购物清单、阅读清单等)

我的代码是在线的: http : //jsbin.com/qidag/1/edit

在浏览器中,我创建了几个列表。然后,当我尝试访问一个列表时,我收到了 Ember 错误:

加载路由时出错:错误:断言失败:ArrayProxy 需要一个 Array 或 Ember.ArrayProxy,但您传递了对象

如果我尝试再次单击路线,待办事项会按预期加载。然后,如果我尝试单击任何其他链接以加载不同的列表,则会出现错误:

加载路由时出错:TypeError: undefined is not a function

当我刷新路线时,列表加载没有错误。

谁能启发我:为什么根据我访问路线的方式会出现不同的错误?我是否错过了 ember 在幕后所做的一些魔法?

其次,我的代码不起作用!当我将我的 TodosController 明确定义为 ArrayController 而不是控制器 ember 生成时,错误开始出现。感觉就像我错过了一个关系 - 我已经尝试显式设置 itemController 属性并更改 Route.map() (路由 VS 资源等),但我无法通过“对象被传递给 ArrayProxy”错误!

如果有人可以提出解决方案或将我指向相关文档,我将非常感激!谢谢斯卡兹