假设用户可能会从集合 { A, B, C } 中选择一个 div 并将其添加到 div X 中,但每个 div 具有不同的规则,可能取决于应用程序状态和每个 div 的某些内在属性。最后在添加 div 时,每个 div 可能会触发不同的事件。
例如,在一种应用程序状态下,用户:
尝试将 A 添加到 X:将 A 添加到 X,没有其他反应
尝试将 B 添加到 X:将 B 添加到 X,触发了一些附加事件
尝试将C添加到X:不允许,C返回到某个定义的原始状态(例如,如果我尝试通过拖放将C添加到X,C返回到原始位置)。
假设所有三个 div 都已渲染,并且每个都存在一个模型、视图和控制器。
随意告诉我你在这个过程中看到的逻辑片段以及你会把它放在哪里。但请回答:
- 验证过程应该位于控制器层还是模型层的某个位置
- 一旦经过验证,一个中介对象是否应该调用模型和视图来添加新的孩子,或者模型应该添加孩子,然后以某种方式触发视图做同样的事情。
- 控制器是否应该意识到 dom 和模型的层次关系
我正在 Ember.js 中实现这样的东西,它对事物有一定的想法,但即使你不使用它/从未听说过它,也请回答。