我试图设置一种动态定义路线,模板和模型的方法。 (Ember 2.16.0)
到目前为止,我有这个:
// app/router.js
Router.map(function () {
let routes = [
{route: "page_one", templateName: "default.hbs"},
{route: "page_two", templateName: "default.hbs"},
{route: "page_three", templateName: "custom.hbs"}
];
routes.forEach(function (key) {
this.route(key.route);
}, this);
});
这很有效,如果模板文件存在,我可以加载页面。
我想更进一步,在这里定义模板名称,例如我希望它们全部使用" default.hbs"以及为它们动态加载模型。
EmberJS中有可能出现这种情况吗?如果是这样的话,我应该考虑哪些文件。
我知道你可以在相应的路线文件中指定模板" app / routes / page_one.js"但这不会是动态的。
答案 0 :(得分:1)
默认情况下,Ember的路由和模板方法是使用内置模板来处理来自后端的数据布局。完全有可能做到这样的事情然后最终显示您的CMS页面显示在/page/:slug
:
// app / router.js
Router.map(function () {
this.route('page', { path: '/:post_id' });
});
执行上述操作后,您可以设置page
路由以处理从CMS中检索相应数据,然后将其显示在page.hbs
中(可选择使用任何其他HTML进行包装)使其在Ember中运作良好。)
这是Ember附加组件的一个例子。 https://github.com/oskarrough/ember-wordpress它还有一个工作测试应用程序,旨在对抗您可以在此学习的Wordpress后端:https://github.com/oskarrough/ember-wordpress/tree/master/tests/dummy
您还可以采取其他方法,但这可能是最简单的方法。这有帮助吗?