余烬是否需要为每个屏幕生成路由
Does Ember need a route to be generated for every screen
我遇到以下情况;
有多个工作流。采用工作流程1这是一个 3 步工作流程,在步骤 1 中带有用户输入表单。所以我为此/工作流1/step1创建了一个路由
现在在这个step1表单上,我有一个字段(查找值(和旁边的按钮,单击该字段时,我需要显示一个新屏幕(这将完全取代step1屏幕(。此屏幕上再次是一个表单(一种过滤器(,用户可以基于此查找表单进行过滤并选择任何数据。
选定的用户数据将填充步骤1"查找"字段中的值。
不,我的问题是,实现此查找屏幕的最佳方法是什么。
- 我是否必须创建一个新路由(例如/lookup(,即在根级别并实现它?
- 此查找屏幕将从多个位置(例如从工作流 2、工作流 3(调用,并且它的行为在所有情况下都是相同的。唯一的区别是它的选定值将转到调用工作流的第 1 步。(即它可以是/workflow1/step1 或/workflow2/step1(
- Ember 中有什么方法可以实现这种屏幕,而不必为其生成单独的路由?
您可以为此创建一个路由,但对我来说,它看起来更像是一种模态形式。我将创建一个查找组件,然后使用布尔值来切换此组件的可见性。全尺寸白色背景,覆盖其他所有内容。简单。
请记住,DOM 的其余部分仍在渲染。
如果要更改 URL,您仍然可以创建路由。也绝对不是一个糟糕的解决方案!
您还可以创建组件路由,将组件名称用作动态段,并使用component
帮助程序调用组件。这么多选择!
对我来说
,你的场景看起来很nested routes
.
当您希望在另一个模板中显示模板时,Ember 提供对嵌套路由的完全支持。在您的情况下:
1.在根级别创建一个路由,该路由将成为您的工作流路由。
Router.map(function() {
this.route('workflow', { path: '/workflow' });
});
在此,您可以放置步骤1的模板。
2.创建一个嵌套的查找路由,该路由将嵌套在路由workflow
内。
Router.map(function() {
this.route('workflow', { path: '/workflow' }, function(){
this.route('lookup',{ path: '/lookup' });
});
});
如果您想拥有像 w1
、w2
和 w3
这样的工作流,那么您可以为它们创建路由并使用rendertemplate
函数来渲染相同的lookout
。
App.w1Route = Ember.Route.extend({
renderTemplate: function() {
this.render('lookout');
}
});
同样,您可以使用相同的瞭望模板创建其他两个工作流。
相关文章:
- Emberjs应用程序加载在除Index之外的所有路由上
- 正在使用$location.path(.)路由ng视图
- 在AngularJS应用程序中使用封装指令和路由的推荐方式是什么
- 如何将屏幕分辨率乘以 80%,然后在代码中使用
- 在不打开聊天屏幕的情况下制作Zopim-ding代理
- 使用图像数组列表的simplegallary.js显示适合桌面屏幕的图像
- 导航栏没有调整到浏览器屏幕的大小
- 调整屏幕大小后不显示子菜单
- 如何在p5.js中管理多智力竞赛游戏的多个屏幕
- jQuery:当屏幕大小改变时,如何更改默认图像和悬停图像
- 未激发路由的控制器属性上的观察者
- 当带有渲染器的DOM元素不在屏幕顶部时,移动了场景的坐标
- 如何知道元素在屏幕上是否可见.如果没有,请滚动页面
- 如果使用javascript函数屏幕太小,我该如何更改HTML文件的背景色
- AngularJS ui路由器html5模式中断路由
- 发送json对象或使用express路由呈现视图
- 如何打开/移动主屏幕左侧的浏览器窗口
- 使用主干网和rails的静态页面路由
- 如何在屏幕外或项目的中心视口中跟随YUI驱动的动画
- 余烬是否需要为每个屏幕生成路由