ng-docs.github.io icon indicating copy to clipboard operation
ng-docs.github.io copied to clipboard

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

Open guokegit opened this issue 5 years ago • 5 comments

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

guokegit avatar Dec 11 '19 10:12 guokegit

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

tc9011 avatar Dec 11 '19 10:12 tc9011

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

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

guokegit avatar Dec 11 '19 10:12 guokegit

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

wszgrcy avatar Dec 12 '19 01:12 wszgrcy

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

asnowwolf avatar Dec 12 '19 01:12 asnowwolf

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

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

mulining avatar Sep 16 '22 09:09 mulining