ng-docs / ng-docs.github.io

Angular 官方文档中文版预编译网站
https://angular.cn
Other
103 stars 22 forks source link

angular7如何实现组件继承(包括模板和样式)? 继承后如何重写部分模板? #127

Open guokegit opened 4 years ago

guokegit commented 4 years ago

想继承某个包含业务的组件,模板和样式都继承,并且在继承后要重写部分方法和部分模板? angular7目前能实现吗?

tc9011 commented 4 years ago

要修改的模板用ng-content做内容投射,方法的话直接 emit 出来

guokegit commented 4 years ago

要修改的模板用ng-content做内容投射,方法的话直接 emit 出来

要继承的父组件是从别的模块引过来的,我不能修改父组件,我只是要继承他的代码,然后重写部分自己的

wszgrcy commented 4 years ago

ts部分继承容易 extends就可以了 但是html.......我从来没见过有什么方案是可以继承过来的,你说继承过来新标签怎么插入?,位置放哪里?基本上应该是属于未解之谜 你要是不修改html模板这里给你一个简易.templateUrl哪里,你直接复制原来的组件链接(前提是这个组件有源码,不是什么第三方已经编译完成的) 要是属于第三方的那种,只能是加指令修改了

asnowwolf commented 4 years ago

组合优于继承。你把需要继承下来的内容都拆成小组件,然后让子组件引用它们就行了。

mulining commented 2 years ago

组合优于继承。你把需要继承下来的内容都拆成小组件,然后让子组件引用它们就行了。

被继承的组件可能是很多个子组件的集成,且这些子组件和父组件有比较复杂的交互。那如果继承只是向改很小的一部分内容的话,此时重写 html 的代价还是比较大的