我的应用程序中有一个视图(和控制器),在其中将“editingMode”布尔值设置为 true 更有意义,以便将其置于编辑模式。
在编辑时,我想展示几个不同的模式(每个模式都有我们在路由器下的资源)。所以我在找出正确的设置方法时遇到了一些问题。
/category # "normal" view
/category/edit # category view/controller with the "editMode" set to true
/category/edit/subcategory # needs to show the categoryController with editMode set to true and then subcategory index above it.
所以路由器是这样设置的:
App.Router.map(function(){
this.resource('category', function(){
this.route('edit');
this.resource('subcategory', function (){});
});
});
显然,我不能subcategory
在edit
. 所以我想我的两个选择是。
选项一
把主控制器,处理Category
下的所有功能CategoryIndexController
。但这需要两件事。
- 类别的编辑模式加载该视图和控制器(这很容易)
- 我想要的每个模式都必须首先加载索引视图,然后将自身加载到该视图中。这很烦人,看起来不像选项 2 那样干净。
选项二
将主控制器放在CategoryController
. 这意味着:
CategoryIndexController
真的什么都不做。- 编辑模式仍然会告诉将
CategoryController
其编辑模式设置为 true - 模式不必发生任何事情(除了告诉
CategoryController
它应该处于编辑模式之外。
这对我来说似乎是更清洁的选择,但我看不出让它发挥作用。有任何想法吗?
有没有更好的方法来做到这一点或更“正确”的方式?