作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我继承了一个代码库,并试图弄清楚什么是什么。在 emberjs 应用程序中,我如何知道哪个 Controller (js) 对应于特定页面上的 View (hbs)。有设定吗?有约定吗?
最佳答案
约定是它们的名称(或更准确地说是它们的路径)应该相同。
如 controllers/page.js
应该有一个 templates/page.hbs
和一个 routes/page.js
如果您使用 ember new
或 ember twiddle 创建一个新的 Ember 项目,您可以看到这个约定。 .
您还可以使用 templateName
在路由中指定模板名称属性(property)。
// routes/page.js
import Route from '@ember/routing/route';
export default Route.extend({
templateName: 'something/different'
});
Ember 还允许我们使用 renderTemplate
在我们的 route Hook 并选择不同的模板和/或不同的 Controller 。
// routes/page.js
export default Route.extend({
renderTemplate(controller, model) {
// Render the `something/else` template
// and use the and `other/thing` controller
this.render('something/else', {
controller: this.controllerFor('other/thing')
});
}
});
Read more in "Ember JS Guides: Rendering a template"
Ember 过去也允许使用 partial
助手将模板嵌入到其他模板中。
您使用的是哪个 Ember 版本非常重要,因为这会将您的关注点限制在特定的 API 行为上,因为 Ember 这些年来确实发生了很大变化。
关于javascript - EmberJS : How to find which controller is used to drive . hbs View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48347244/
我是一名优秀的程序员,十分优秀!