MVC大师将如何处理这些模型属性更改及其控制器后果?

时间:2011-08-18 15:19:57

标签: javascript model-view-controller language-agnostic backbone.js javascriptmvc

我正在开发一个JavaScript应用程序,它应该根据URL哈希中的设置或基于用户交互来呈现可视化。

(目前我正在使用Backbone.js进行MVC,但我认为这些问题可能被视为框架无关......?)

假设用户正在查看指标A和指标B被选中的应用程序状态。 用户将指标B更改为C,会发生什么?

那么,更改指标应该会导致模型等待获取和操作新数据。

...然后,当然,更改指标会对不同的观点产生很多影响:

  • 要显示的可用实体将更改
  • 比例会改变
  • 指标标签会改变等等......

此阶段的一个问题是如何处理所有这些依赖/计算变量?

在这种情况下,模型现在是否还要根据指标的变化跟踪数据的可用性和规模等?因此它是否应该触发所有这些计算属性的更改事件?

在任何情况下,现在必须通知“主可视化控制器”有关模型的更新,但它是如何进行的?

在这种情况下,有一个指标变化,应该导致图标被添加和减去,标签变化等等。

在另一种情况下,只有年份可能会发生变化。如果财务主任再运行另一条途径?

在第三种情况下,年份和指标都可能会发生变化(例如,设置初始URL散列时)......还有另一组要在链中触发的函数吗?

我正在寻找一种处理这些不同场景的强大方法,这样我就可以跟踪到底会发生什么。我特别感兴趣的是,您对模型中要保留的属性以及如何布局控制器功能以便能够对模型进行小的用户交互更改以及多属性更改的看法。

1 个答案:

答案 0 :(得分:0)

非常对backbone.js来说是新的,所以把我的建议当作所有的盐,稍微有可能在那里有一些物质。

如果我正确理解(关注)您的问题,您不喜欢在进行更改时拥有完全重新呈现的视图的想法;但你仍然喜欢只有一个视图附加到那个模型的想法,如果是这样的话,你能创建多个渲染事件并将它们绑定到特定的属性变化吗?

this.model.bind('change:propertyA', _.bind(this.renderA, this));
this.model.bind('change:propertyB', _.bind(this.renderB, this));