view/state 逻辑应该放在 Ember 的什么地方?
Where should view/state logic live in Ember?
我正在开发一个 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>
标记切换到文本区域的操作应该在控制器中还是应该创建一个组件?
您可能需要 itemController
(see docs)
然后您可以将 isBeingEdited
放在那个项目控制器上,并且在显示和编辑单个 track
之间切换的操作也会出现在那里。
保存模型的操作将在 route
上进行
我正在开发一个 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>
标记切换到文本区域的操作应该在控制器中还是应该创建一个组件?
您可能需要 itemController
(see docs)
然后您可以将 isBeingEdited
放在那个项目控制器上,并且在显示和编辑单个 track
之间切换的操作也会出现在那里。
保存模型的操作将在 route