我有以下两条路径可以在我的应用程序中编辑对象( node ):
- 列出节点 -> 单击编辑图标
- 列出节点 -> 选择节点 -> 单击编辑按钮
我可以选择取消编辑。当我取消时,我希望路由器(控制器?)回到正确的位置。也就是说,如果我来自节点列表,我想取消返回“节点列表”(#nodes
)。如果我来自节点视图,我想取消返回节点视图 ( #nodes/show/node-id
)。目前这是我的实现NodesEditController
:
SettingsApp.NodesEditController = Ember.ObjectController.extend({
needs: ['nodesIndex'],
selectedNode: null,
selectedNodeType: null,
nodes: [],
...
cancel: function () {
this.stopEditing();
this.transitionToRoute('nodes.show', this.get('content'));
},
...
});
如您所见,cancel
动作的路线是固定的(nodes.show
)。但在第一种情况下,我想做this.transitionToRoute('nodes.index');
. 所以我的cancel
方法一定是这样的:
cancel: function () {
this.stopEditing();
if (some_test) { this.transitionToRoute('nodes.show', this.get('content'));
} else { this.transitionToRoute('nodes.index'); }
}
如何实施some_test
?我可以测试什么来了解我是如何到达当前路线的?