san*_*rom 12 javascript viewstate model-view-controller state-management ember.js
将StateManager在Ember.js不说,有据可查的,所以我已经得到了有关其使用的一些问题.
.goToState只从国家经理内部打电话?save: -> StateManager.send("save").这有意义还是我错过了什么?ViewState带子状态建模,还是应该使用计算属性和视图属性仅在视图中保存该信息(没有状态管理器知道视图内部状态)?**一个示例可以是三步形式,其中相同的模板用于所有状态,但是在三个步骤中显示/隐藏不同的区域.
Github参考:https://github.com/emberjs/ember.js/tree/master/packages/ember-states/lib
关于你的观点2:
我有时会发现自己在视图中的状态管理器中镜像方法,例如
save: -> StateManager.send("save").这有意义还是我错过了什么?
您可以action在Handlebars模板中使用帮助器并将StateManager设置为target
{{action "send" target="App.stateManager"}}
Run Code Online (Sandbox Code Playgroud)
并将send事件发送给您App.stateManager.
是否应该努力只从州经理内部调用.goToState?
大概.我肯定不知道这一点,但在我看来,因为州经理知道你所处的状态,所以它是强制执行合法州过渡的地方.如果你从国家经理外面打电话给.goToState,你就是在没有真正知道自己处于什么状态的情况下这样做的,虽然这有时候可以(也许这是一个你可以从任何其他州获得的状态)但这不是一个好习惯将在.
我有时会发现自己在视图中的状态管理器中镜像方法,例如save: - > StateManager.send("save").这有意义还是我错过了什么?
我喜欢pangratz对此有何看法.
模型的所有修改(通常)是否应该通过州经理?
我使用状态图的方式,没有.我已经看到一些人使用状态图作为控制器层的完全替代品,但是,如果这是你的工作方式,那么是的,它应该通过状态管理器.模式是避免从视图中直接操纵模型; 无论是控制器层还是中间的状态管理器,对我来说都是一个没有实际意义的问题.
但是,我使用状态图表的方式是使状态管理器管理应用程序的状态.如果修改将改变应用程序的状态(例如,如果在更新完成时有进度指示器),它可以扮演流量管理器来修改模型,但在我看来,模型更新不是其任务的一部分; 他们属于控制者.
如果一个视图具有不同的状态,是应该使用具有子状态的ViewState建模,还是应该使用计算属性和视图属性仅在视图中保存该信息(没有状态管理器知道视图内部状态)?
我认为州经理需要知道(或应该知道)观点的内部状态.
出于好奇,您是来自Web开发背景还是桌面/移动应用程序开发背景?我来自网络开发,状态图表对我来说是一个新概念.我发现阅读David Harel 的规范状态图表文件非常有用('ware PDF!).对于一篇学术论文而言,这是令人惊讶的可读性,并列出了自2010年底以来大部分SproutCore/Ember世界一直在使用的基本状态图表概念(也就是Michael Cohen写Ki时的想法).
| 归档时间: |
|
| 查看次数: |
2534 次 |
| 最近记录: |