在ember.js web应用程序中,伪持久化状态应该存在于何处
Where should faux-persisted state live in your ember.js web app?
我最近读了@twbrandt的一篇优秀的《开始使用ember.js》帖子,发现他对控制器/view/model/router/template"应该负责什么"的解释很有趣。
当你有一个数据库支持的模型时,一切都很好,把持久化状态放在模型对象中,任何没有持久化的状态都很可能在控制器中找到。
但想象一下,你允许你的客户定义一个给定的模型是什么样子的(某种配置)。从这个配置中,您需要构建一个"结构"来在运行时添加这些模型。
例如,您允许客户定义他们的业务每天营业的小时数。从这个配置中,你需要在页面上添加一个空的或"人造"的模型来填充一整天。您创建这些伪模型是因为对于每个工作日,您还需要获取这些模型的持久版本(因为客户实际上可以使用应用程序创建一个)。
因此,使用配置,我只剩下一个模型(它实际上被保存到数据库等中),但我需要将这个模型与一个并不存在的模型混合在一起,但在手把模板中,有一个填充版本真的很有帮助,这样html就不复杂了(将逻辑保持在javascript中)。
目前,我将这种逻辑存储在模型本身上,因为持久化的实际模型和作为单个数组绑定到把手模板的伪模型/占位符之间存在"混合"(但通常只有一些是持久化支持的模型)。
我的问题是,这个数组是否应该是控制器的一部分,因为"其中一些"没有备份?或者,整个数组应该是ember数据的"find"方法的覆盖(就像我现在所做的那样),以启用"当存在时用真实模型替换每个伪模型"行为?
提前感谢
视图使用控制器来显示数据。控制器是模型的代理,视图可以显示来自模型的信息。
但您不必将模板链接到模型。您可以在控制器上使用车把模板中使用的属性。然后由您在持久化相关记录时将这些数据传输/操作到模型。您的模型上也可以有非DS.attr
的属性,因此不会持久化。
用一个样本来回答/理解你的问题会更容易。
- 事件和状态
- 获取选择框的状态
- 相位器状态未捕获参考错误
- 如何更改reactjs中外部/独立组件的状态或属性
- 如何使用密码检测网络中的状态连接
- Ember.js-接口状态应该存储在哪里
- 混合 ui-sref 和 $state.go 在 Angular ui-router 中进行状态转换
- 在Angular 2中布线期间保持零部件处于活动状态
- 在mvc应用程序中,在回发时保留最初隐藏的文本框的隐藏或可见状态
- XMLHttpRequest未返回值-状态202
- 使用JavaScript'持久化CSS状态;s的`window.cookie`
- 如何在 react.js 中跨子组件持久化数据或状态
- 如何通过主干视图渲染持久化状态消息/图标/通知
- 用passport.js、mysql和express-session持久化登录状态
- 状态不持久化——AngularJS Ionic Service从JSON文件中获取数据,然后忘记它
- 如何在ui-router中持久化浏览器上的可选状态参数
- 在ember.js web应用程序中,伪持久化状态应该存在于何处
- 使用智能表在视图状态 AngularJs 之间持久化数据
- 使用本地存储持久化检查状态
- MongoDB猫鼬状态持久化