在Ember中,视图/状态逻辑应该放在哪里?

时间:2015-01-15 14:47:32

标签: javascript jquery ember.js frontend

我正在开发一个Ember应用程序,并且很难理解逻辑应该用于我正在构建的功能。这个功能就是这个,我们正在显示一个可以编辑标题的项目列表。所需的效果是显示文本的区域默认为<p>标记,但单击编辑按钮时标题将成为文本字段,因此用户可以编辑标题并保存。

这是目前标题的模板,

{{#if track.isBeingEdited}}
  {{ input value=track.title }}
{{else}}
  {{ track.title }}
{{/if}}

我正在考虑使用这样的按钮,

{{#if track.isBeingEdited}}
  <button {{action updateTitle}}>Save Title</button>
{{else}}
  <button {{action toggleEditState}}>Edit Title</button>
{{/if}}

目前,该模型具有isBeingEdited属性,默认情况下设置为false。我想将操作放在控制器中,这会将模型的isBeingEdited属性的值更改为true,或者返回false并触发新标题的保存。

我不确定isBeingEdited是否应该在控制器中,这是Ember.ArrayController。此外,单击按钮并将<p>标签切换到textarea的操作是应该在控制器中还是应该创建组件?

1 个答案:

答案 0 :(得分:2)

您可能需要itemControllersee docs

然后您可以在该项目控制器上拥有isBeingEdited,并且在显示和编辑单个track之间切换的操作也会在那里。

保存模型的操作将在route

上进行