【发布时间】:2015-02-23 17:40:49
【问题描述】:
这听起来像是一个迂腐的问题。对不起:)
我有这样的情况...这是我的路由器定义:
Router.map(function() {
this.resource('gobernadores', { path: '/gobernadores' }, function() {
this.resource('gobernador', { path: '/:id_estado' }, function() {
this.route('simulacion', { path: '/simulacion' }),
this.route('info', { path: '/info' })
})
});
this.route("login");
this.route("bienvenido");
});
在“gobernadores”路线中,我有省份列表。你可以看到它是一个嵌套布局。在同一页面中,我们显示了当前选择的省份(即 gobernador 路线)。在该 gobernador 路线的模板中,我有一个选项卡,其中包含两个元素...,一个显示路线“模拟”,另一个显示路线“信息”的模板(该省)。
现在,问题是:当用户从一个省跳到另一个省时(通过单击屏幕左侧的导航菜单),我想为每个省保留当前选择的选项卡。
所以,如果用户当前正在查看 X 省的模拟结果,然后他点击链接转到 Y 省(在那里他将看到 Y 省的“信息”),然后他就去了回到 X 省,我希望应用程序将用户带回到他所看到的屏幕(X 省的模拟)。
您不能将该信息存储在控制器 (GobernadorController) 中,因为我可以看到控制器无法保持状态,它是无状态的。
所以...,我必须将该信息移动到路线模型 (GobernadorRouteModel)...
我的疑问:可以吗?为什么我的怀疑?正因为如此:http://emberjs.com/guides/concepts/core-concepts/
上面写着:
模型
模型是存储持久状态的对象。模板是 负责将模型显示给用户 HTML。在许多应用程序中,模型是通过 HTTP JSON API 加载的, 尽管 Ember 与您选择的后端无关。
路线
路由是一个对象,它告诉模板它应该使用哪个模型 显示。
这个 GobernadorRouteModel 不是我保留在后端的东西。我无意这样做。那么,我是否违反了关于一个好的 EmberJS 应用程序的一般建议?
或者换句话说:这里的“持久”不一定意味着“你保存到数据库中的东西”,对吧?它只是“你想要保留的东西......,即使只是在应用程序的会话期间,在内存中”。
提前致谢, 拉卡
【问题讨论】:
标签: model-view-controller ember.js