嵌套的组件元素
Nested components elements
我遇到了一个模板/组件问题,找不到任何答案。
我正试图将一个简单的Javascript项目转移到Angular2。在我的项目中,我实际上通过继承其他元素来创建一些元素。示例:
文件头.html
<header class="some_class"></header>
文件header_base.html继承自header.html
<header> <!-- This is the header element from the header.html file. -->
<img class="some_class" src="path/to/my/image">
...
</header>
编辑:为了澄清我实际是如何做到的,为了"从另一个继承文件",我使用了Javascript。
我的问题是在Angular中找不到如何做到这一点。我的问题是,有什么方法可以完成这样的事情吗?或者我需要改变我的"模板化"方式吗?
提前谢谢。
您的问题有点令人困惑。你能提供更多关于最终结果的细节吗?
听起来您正在寻找的是shadow-dom插入点,在这里您有一个可以将内容放入其中的组件。您有一个名为Header的组件,该组件应用了一些标记和样式,但您可以在不同的地方使用它,使用不同的内容?
如果是这样的话,下面是你该怎么做(注意:这是Typescript,但可以用普通的Javascript来完成。查看Angular文档中的示例):
CustomHeader.ts:
@Component({
selector: 'custom-header',
template: '<header class="some-class"><ng-content></ng-content></header>'
})
export class CustomHeader {
//if you need any logic in that component
}
然后在任何需要使用该组件的组件中,您都可以导入它:
应用程序:
import {CustomHeader} from './CustomHeader';
@Component({
selector: "my-app",
directives: [CustomHeader],
template: `<div>
<custom-header>
<img class="some_class" src="path/to/my/image" />
</custom-header>
</div>`
})
结果是,当您在html中使用组件时,其内容将被CustomHeader模板的内容包裹。但不确定这是否正是你的需求。
编辑:下面有一篇很好的文章描述了这种类型的组件:http://blog.thoughtram.io/angular/2015/03/27/building-a-zippy-component-in-angular-2.html
- 从组件状态的数组中删除元素
- 自定义HTML元素属性未显示-Web组件
- 从不是wicket组件的元素调用wicket
- Vue.js获取组件中的一个元素
- 为什么不't React缓存子组件的html元素
- 将Vaadin组件放入Javascript组件生成的元素中
- React - 从 DOM 元素获取组件以进行调试
- 访问Vuejs组件内部的元素
- 没有任何 DOM 元素的 Aura 组件
- 组件之后子元素中的某个方法DidMount in parrent 元素
- 如何获取当前Vue组件的DOM元素
- 如何在Vue.js中获取组件元素的offsetHeight
- 如何根据子组件的状态更改父组件样式元素
- React:未捕获的不变量冲突:ReactDOM.render():无效的组件元素
- 如何防止其他元素在拖动任何devexpress组件时高亮显示
- 如何使用 JavaScript 获取元素/组件名称
- 可能的话,选择它生成的元素组件
- 应用材质UI'的touchple Component到自定义元素/组件
- 不能在Extjs面板中添加元素/组件
- 我如何选择/替换一个链接函数内的css类元素组件