Ember 没有 div 包装器的模板
Ember template without div wrapper
Semantic UI(一个HTML5组件库)提供了Sitebar组件,需要在<body>
.
正下方有特定的页面结构
自从 Ember 引入 HTMLBars 以来,它将所有模板的内容包装在另一个 <div>
标记中,然后再将其注入 DOM,例如
<div id="ember389" class="ember-view"><!-- original template's content comes here --></div>
这使得使用上述站点栏和类似组件几乎无法使用。
旧的 Ember 版本也有类似的问题,但他们的答案不再有效,因为 Views
已经停用。 Ember 仍然为 "templates without wrappers" 提供私有的 _MetamorphView class,但除了它也被弃用之外,我现在不知道如何将它们合并到我的 [=16] =].
非常感谢任何帮助!
其实并没有你想的那么难。您只需要对 component 进行一些细微的更改。 (假设您正在使用 Ember 2.x 并希望将侧边栏作为组件)
例如
// app/components/side-bar.js
export default Ember.Component.extend({
classNames: ['ui', 'sidebar']
});
// app/templates/components/side-bar.hbs
{{yield}}
// usage
// app/templates/application.hbs
{{#side-bar}}
// your sidebar contents go here
{{/side-bar}}
<div class="pusher">
// Your site's actual content
{{outlet}}
</div>
如果侧边栏不是必须的组件,那就简单多了
// app/templates/application.hbs
<div class="ui sidebar">
// ...
</div>
<div class="pusher">
// Your site's actual content
{{outlet}}
</div>
编辑 - 回复评论
A sidebar can be initialized inside any element, not just a page's body.
http://semantic-ui.com/modules/sidebar.html#using-a-custom-context
您可以使用以下内容:
import Ember from 'ember';
export default Ember.Component.extend({
/**
* No default div around the element.
*/
tagName: ''
});
设置空的 tagName 参数
在 .hbs
{{component-name tagName=''}}
Semantic UI(一个HTML5组件库)提供了Sitebar组件,需要在<body>
.
自从 Ember 引入 HTMLBars 以来,它将所有模板的内容包装在另一个 <div>
标记中,然后再将其注入 DOM,例如
<div id="ember389" class="ember-view"><!-- original template's content comes here --></div>
这使得使用上述站点栏和类似组件几乎无法使用。
旧的 Ember 版本也有类似的问题,但他们的答案不再有效,因为 Views
已经停用。 Ember 仍然为 "templates without wrappers" 提供私有的 _MetamorphView class,但除了它也被弃用之外,我现在不知道如何将它们合并到我的 [=16] =].
非常感谢任何帮助!
其实并没有你想的那么难。您只需要对 component 进行一些细微的更改。 (假设您正在使用 Ember 2.x 并希望将侧边栏作为组件)
例如
// app/components/side-bar.js
export default Ember.Component.extend({
classNames: ['ui', 'sidebar']
});
// app/templates/components/side-bar.hbs
{{yield}}
// usage
// app/templates/application.hbs
{{#side-bar}}
// your sidebar contents go here
{{/side-bar}}
<div class="pusher">
// Your site's actual content
{{outlet}}
</div>
如果侧边栏不是必须的组件,那就简单多了
// app/templates/application.hbs
<div class="ui sidebar">
// ...
</div>
<div class="pusher">
// Your site's actual content
{{outlet}}
</div>
编辑 - 回复评论
A sidebar can be initialized inside any element, not just a page's body.
http://semantic-ui.com/modules/sidebar.html#using-a-custom-context
您可以使用以下内容:
import Ember from 'ember';
export default Ember.Component.extend({
/**
* No default div around the element.
*/
tagName: ''
});
设置空的 tagName 参数 在 .hbs
{{component-name tagName=''}}