不扩展应用程序模板 emberjs
Not extending the application template emberjs
有什么
方法可以不扩展Emberjs中的应用程序模板吗?就像我有一条路线一样,出于 SEO 目的需要/questions
url,但它的设计与所有其他页面完全不同。所以我不希望它继承应用程序模板。这可能吗?
我能想到你有两个选择。第一个是在评论中提出的:为questions
和其他所有内容创建单独的顶级路由:
// templates/application.js
{{outlet}}
// templates/questions.js
{{! whatever you want for the questions template }}
// templates/base.js
{{! base template stuff, headers, nav bars, content, etc. }}
// router.js
Router.map({
this.route('questions');
this.resource('base', function() {
this.route('base1');
....
});
});
关于这将导致/base/base1
形式的路由的注释不正确。通过使用this.resource
,路由的形式将是/base1
。
使用插座
还有另一种方法可以满足您的需求,也可能不能满足您的需求。它涉及在应用程序模板中放置一个自定义出口,该出口可能由子路由填充。然后为"常规路由"定义一个超类,该超类定义一个将标头物质呈现到该出口的renderTemplate
。
// templates/application.js
{{outlet name='header'}}
{{outlet name='main'}}
// mixins/normal-route.js
renderTemplate() {
this.render('header', {
outlet: 'header'
});
}
// router.js
Router.map({
this.route('questions');
this.route('base1');
});
// pods/base1/route.js
export default NormalRoute.extend({...
这样做的好处是允许应用程序模板更具"可读性"和语义性,因为它显式显示它由(可能的(标头部分(填充了一些其他组件(和"主"部分组成。
相关文章:
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- Emberjs应用程序加载在除Index之外的所有路由上
- 使用电话间隙在Android应用程序中显示SQL Lite的数据
- 在AngularJS应用程序中使用封装指令和路由的推荐方式是什么
- 搜索引擎可爬网应用程序的EmberJS技术堆栈
- CKEditor 未捕获的类型错误:无法在具有多个编辑器的 EmberJS 单页应用程序中调用 null 的“不可选择”
- 为什么当我在 Emberjs 中最后用“id”刷新 url 时,我得到一个空白应用程序
- EmberJS 应用程序中列表 + 详细信息 + 编辑视图的数据处理
- 从 emberjs 车把应用程序中获取干净的 HTML
- 找不到“”;应用程序“;模板或视图.任何东西都不会被渲染Emberjs RailsAPI
- 禁用“;退格”;在EmberJs中跨应用程序按键
- 嵌套路由's模板未在EmberJS应用程序中呈现
- 如何将内容呈现到由应用程序模板呈现的emberjs模板中?
- Emberjs索引vs应用程序
- 把手在EmberJS应用程序不显示任何东西
- Emberjs -简单的应用程序不工作
- 不扩展应用程序模板 emberjs
- 如何在 Emberjs 中将事件从内部组件冒泡到应用程序控制器
- 新的待办事项已创建但未显示 - 带有EmberJS的待办事项应用程序,没有余烬数据
- EmberJS - 断言失败:#each 循环的值必须是数组.您通过了(生成的应用程序控制器)